본문 바로가기

알고리즘

BOJ 2501 약수구하기

알고리즘-boj2501

BOJ 2501 약수구하기

  • 4번의 문제를 틀리고 난 뒤에 성공을 했다.
  • 같은 실수를 반복하지 않기 위해 기록을 남긴다.

 

  • 자연수 N과 K가 주어졌을 때, N의 약수들 중 K 번째로 작은 수를 출력하는 프로그램을 작성

  • 만일 N의 약수의 개수가 K개보다 적어서 K번째 약수가 존재하지 않을 경우 0을 출력

    • N의 약수의 개수가 K개보다 적다는 생각을 못했음. 다양한 경우의 수가 존재하지만 예제 입력만 확인한채 제출한 점.
    • N의 약수의 개수가 K개보다 적어서 K번째 약수가 존재하지 않을 경우 0을 출력해야 하는데 내 마음대로 -1을 출력함

  • 문제를 잘 읽어보고 풀어야 겠다.
  • 예제 뿐만 아니라 몇 개의 테스트 케이스(경계값)를 더 생각한뒤 테스트 해보고 제출해야겠다.

 

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();

        for (int i = 1; i <= n; i++) {
            if ((n%i) == 0) {
                k--;
                if (k == 0) {
                    System.out.println(i);
                    return;
                }
            }
        }
        System.out.println(0);
    }
}

 

'알고리즘' 카테고리의 다른 글

백준 1181 단어 정렬  (0) 2019.03.02
BOJ 1620번, 나는야 포켓몬 마스터 이다솜  (0) 2019.02.04
CodeForces, 1A. Theatre Square  (0) 2019.01.18
선택 정렬 selection sort  (1) 2018.12.18