코딩테스트/[JAVA] 백준
[백준 | 2501번] 약수 구하기
냠냠쿠
2023. 8. 10. 22:36
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