백준[Java] - 약수 구하기

이새봄·2022년 9월 6일

코딩 연습

목록 보기
10/14

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Scanner sc = new Scanner(System.in);

		int N = sc.nextInt();
		int K = sc.nextInt();
		List<Integer> list = new ArrayList<>();

		for (int i = 1; i <= N; i++) {
			if (N % i == 0) {
				list.add(i);
			}
		}
		if (list.size() >= K) {
			System.out.println(list.get(K - 1));

		} else {
			System.out.println(0);
		}

	}
}

처음에는 ArrayList 대신 배열을 사용했다. 그런데 배열을 사용하면 약수가 아닌 부분이 비어버려서 제대로 된 결과가 나오지 않았다. 그래서 순서는 유지하되 인덱스는 앞으로 당기는 ArrayList를 사용하기로 했다.

K번째 약수가 없을 때의 경우를 처리해주지 않으면 런타임 에러가 뜬다.

이클립스 자동 줄 정리 : ctrl + shift + f

0개의 댓글