문제 url:
약수 구하기
문제
import java.io.*;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int K = Integer.parseInt(st.nextToken());
int count = 0;
for (int i = 1; i <= N; i++) {
if (N % i == 0) {
count++;
}
if (count == K) {
System.out.println(i);
return;
}
}
System.out.println(0);
}
}
특별히 어려운 점 없는 문제로 더 나은 코드를 찾아보기 위해 코드를 검색할 결과 이 역시 브루트 포스 문제라고 한다. 다음번에 한번 브루트 포스에 대해 정리를 해보자
간단하게 코드 리뷰를 하면
StringTokenizer를 통해 공백으로 구분하여 N과 K에 정의
count를 통해 나중에 K번째에 해당하는 약수를 구함.
return문을 사용하게 되면 아래의 코드는 존재여부와 상관없이 거기서 끝내기 때문에 만약 count가 K번째에 없다면 0을 출력 그렇지 않으면 K번째의 약수를 출력하는 간단한 문제이다.