728x90
https://www.acmicpc.net/problem/2501
📝 나의풀이
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int N = scanner.nextInt();
int K = scanner.nextInt();//몇번째로 작은 숫자?
List<Integer> list = new ArrayList<>();
for(int i=1; i<=N;i++) {
if(N%i==0) {
list.add(i);
}
} // 약수이면 list에 담는다.
if(K <= list.size()) {
System.out.println(list.get(K-1));
//K의 개수보다 list에 담긴 사이즈(약수의 개수) 가 크면 k-1
} else {
System.out.println("0");
//K의 개수보다 list에 담긴 사이즈(약수의 개수) 가 작으면 0
}
}
}
- 약수 : 나누었을 때 0이 되는 수
- ArrayList를 만들어 두고 for문을 이용해 1부터 N까지의 숫자 중 약수를 찾아 ArrayList에 담는다.
- 만약 담겨있는 약수의 개수 (ArrayList의 사이즈)가 K보다 크면 ArrayList의 k-1번째 숫자를 출력한다 (배열은 0부터 시작하니까)
만약, 담겨있는 약수의 개수 (ArrayList의 사이즈)가 K보다 작으면 0을 출력한다.
728x90
'코딩테스트 > [JAVA] 백준' 카테고리의 다른 글
[백준 | 2720번] 세탁소 사장 동혁 (0) | 2023.08.10 |
---|---|
[백준 | 2738번] 행렬 덧셈 (0) | 2023.08.10 |
[백준 | 2745번] 진법 변환 (0) | 2023.08.10 |
[백준 | 10811번] 바구니 뒤집기 (0) | 2023.08.10 |
[백준 | 5086번] 배수와 약수 (0) | 2023.08.10 |