https://www.acmicpc.net/problem/2501
2501번: 약수 구하기
첫째 줄에 N과 K가 빈칸을 사이에 두고 주어진다. N은 1 이상 10,000 이하이다. K는 1 이상 N 이하이다.
www.acmicpc.net
처음에는 나눠서 나머지가 0이면 리스트에 넣어주고 K번째로 들어가는게 생기면 답을 출력하는걸 생각했었는데 코드를 쓰다보니 그렇게까지 하지 않고 단순하게 해도 답이 나올거같아서 수정했다
나머지가 0이면 카운트를 세어주고 K번째가 나오는 순간 그때의 수를 result에 넣어주고 for문을 나와서 출력하면 끝!!
최종 코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int K = sc.nextInt();
int count = 0;
int result = 0;
for(int i = 1; i <= N; i++) {
if(N % i == 0) count++; // 나머지 0일 경우 몇번째인지 확인하려고 +1씩 해줌
if(count == K) { // K번째인 수 나오면
result = i; // 결과에 i 넣어줌
break;
}
}
System.out.println(result);
}
}
'코딩테스트-알고리즘 > 백준 BOJ' 카테고리의 다른 글
[백준 BOJ/Silver II] 11724번 : 연결 요소의 개수 (0) | 2024.02.15 |
---|---|
[백준 BOJ/Gold V] 10026번 : 적록색약 (1) | 2024.02.12 |
[백준 BOJ/Gold V] 12904번 : A와 B (0) | 2024.02.10 |
[백준 BOJ/Gold V] 7576번 : 토마토 (0) | 2024.02.09 |
[백준 BOJ/Gold IV] 15961번 : 회전 초밥 (1) | 2024.02.07 |