자바 백준 2501번
브론즈 3
https://www.acmicpc.net/problem/2501
문제 보기
분류: 수학, 브루트포스 알고리즘
문제 풀기
주어진 N 을 1 부터 N 까지 나누었을때 나머지가 0 인 숫자를 ArrayList 로 저장한다.
지정한 K 보다 ArrayList 에 저장된 숫자가 작거나 없을 경우를 제외하고, K 번째 숫자인 index K-1 을 ArrayList 에서 찾아 출력한다.
코드 보기
import java.util.Scanner;
import java.util.List;
import java.util.ArrayList;
public class Main {
public static void main (String args[]) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int K = sc.nextInt();
int kthDivisor = findKthDivisor(N, K);
if (kthDivisor != -1) {
System.out.print(kthDivisor); // K 번째 약수 출력.
} else {
System.out.print(0); // K 번째 약수가 없을때.
}
}
public static int findKthDivisor (int N, int K) {
List<Integer> divisors = new ArrayList<>();
for (int i = 1; i <= N; i++) {
if (N % i == 0) {
divisors.add(i); // 나눈 나머지가 0 일때 리스트에 추가.
}
}
if (K > divisors.size()) {
return -1; // 약수가 존재하지 않거나 K 번째로 작은 수를 찾을 수 없음.
}
return divisors.get(K - 1);
}
}
'공부하기 > 백준' 카테고리의 다른 글
[Java] 백준 풀기 2741 - N 찍기 (0) | 2023.06.03 |
---|---|
[Java] 백준 풀기 25305 - 커트라인 (0) | 2023.06.02 |
[Java] 백준 풀기 5585 - 거스름돈 (0) | 2023.05.31 |
[Java] 백준 풀기 10953 - A+B 6 (0) | 2023.05.30 |
[Java] 백준 풀기 10171 - 고양이 (0) | 2023.05.29 |