코딩테스트/[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