코딩테스트-알고리즘/백준 BOJ

[백준 BOJ/Bronze III] 2501번 : 약수 구하기

닉네임생각즁 2024. 2. 11. 23:48

 

https://www.acmicpc.net/problem/2501

 

2501번: 약수 구하기

첫째 줄에 N과 K가 빈칸을 사이에 두고 주어진다. N은 1 이상 10,000 이하이다. K는 1 이상 N 이하이다.

www.acmicpc.net

 

처음에는 나눠서 나머지가 0이면 리스트에 넣어주고 K번째로 들어가는게 생기면 답을 출력하는걸 생각했었는데 코드를 쓰다보니 그렇게까지 하지 않고 단순하게 해도 답이 나올거같아서 수정했다

나머지가 0이면 카운트를 세어주고 K번째가 나오는 순간 그때의 수를 result에 넣어주고 for문을 나와서 출력하면 끝!!

 

최종 코드

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        int K = sc.nextInt();
        int count = 0;
        int result = 0;

        for(int i = 1; i <= N; i++) {
            if(N % i == 0) count++; // 나머지 0일 경우 몇번째인지 확인하려고 +1씩 해줌

            if(count == K) { // K번째인 수 나오면
                result = i; // 결과에 i 넣어줌
                break;
            }
        }

        System.out.println(result);

    }
}