๋ฌธ์ œ ์„ค๋ช…


๐Ÿ’ก Info


๋‚ด์šฉ

์–ด๋–ค ์ž์—ฐ์ˆ˜ p์™€ q๊ฐ€ ์žˆ์„ ๋•Œ, ๋งŒ์ผ p๋ฅผ q๋กœ ๋‚˜๋ˆ„์—ˆ์„ ๋•Œ ๋‚˜๋จธ์ง€๊ฐ€ 0์ด๋ฉด q๋Š” p์˜ ์•ฝ์ˆ˜์ด๋‹ค.

6์„ ์˜ˆ๋กœ ๋“ค๋ฉด

  • 6 รท 1 = 6 โ€ฆ 0
  • 6 รท 2 = 3 โ€ฆ 0
  • 6 รท 3 = 2 โ€ฆ 0
  • 6 รท 4 = 1 โ€ฆ 2
  • 6 รท 5 = 1 โ€ฆ 1
  • 6 รท 6 = 1 โ€ฆ 0

๊ทธ๋ž˜์„œ 6์˜ ์•ฝ์ˆ˜๋Š” 1, 2, 3, 6, ์ด ๋„ค ๊ฐœ์ด๋‹ค.

๋‘ ๊ฐœ์˜ ์ž์—ฐ์ˆ˜ N๊ณผ K๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, N์˜ ์•ฝ์ˆ˜๋“ค ์ค‘ K๋ฒˆ์งธ๋กœ ์ž‘์€ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

๐Ÿ“ฅ์ž…๋ ฅ ์กฐ๊ฑด

  • ์ฒซ์งธ ์ค„์— N๊ณผ K๊ฐ€ ๋นˆ์นธ์„ ์‚ฌ์ด์— ๋‘๊ณ  ์ฃผ์–ด์ง„๋‹ค. N์€ 1 ์ด์ƒ 10,000 ์ดํ•˜์ด๋‹ค. K๋Š” 1 ์ด์ƒ N ์ดํ•˜์ด๋‹ค.

๐Ÿ“ค์ถœ๋ ฅ ์กฐ๊ฑด

  • ์ฒซ์งธ ์ค„์— N์˜ ์•ฝ์ˆ˜๋“ค ์ค‘ K๋ฒˆ์งธ๋กœ ์ž‘์€ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ๋งŒ์ผ N์˜ ์•ฝ์ˆ˜์˜ ๊ฐœ์ˆ˜๊ฐ€ K๊ฐœ๋ณด๋‹ค ์ ์–ด์„œ K๋ฒˆ์งธ ์•ฝ์ˆ˜๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ์—๋Š” 0์„ ์ถœ๋ ฅํ•˜์‹œ์˜ค.

์ž…์ถœ๋ ฅ ์˜ˆ์‹œ

  • ์ž…๋ ฅ 1
    6 3
  • ์ถœ๋ ฅ 1
    3

  • ์ž…๋ ฅ 2
    25 4
  • ์ถœ๋ ฅ 2
    0

  • ์ž…๋ ฅ 3
    2735 1
  • ์ถœ๋ ฅ 3
    1


์œ ์˜ ์‚ฌํ•ญ ๋ฐ ์ œ์•ฝ ์กฐ๊ฑด


.



๋ฌธ์ œ ์ดํ•ด


  • N์˜ ์•ฝ์ˆ˜๋“ค ์ค‘ K๋ฒˆ์งธ๋กœ ์ž‘์€ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๊ธฐ


์•Œ๊ณ ๋ฆฌ์ฆ˜


์‹ค์ œ ํ’€์ด ์‹œ๊ฐ„ : 20๋ถ„

  • N ์ž…๋ ฅ๋ฐ›๊ธฐ
  • K ์ž…๋ ฅ๋ฐ›๊ธฐ
  • N์˜ ์•ฝ์ˆ˜ ๊ตฌํ•˜๊ธฐ
    • N % i == 0๋ฅผ ๋งŒ์กฑํ•˜๋Š” ์ˆ˜๋งŒ ๋‚˜์˜ค๋„๋ก ํ•˜๊ธฐ
    • ๊ทธ ๋‹ค์Œ, ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๊ธฐ
  • ์ˆ˜ ๋น„๊ตํ•˜๊ธฐ: ์œ„์—์„œ ๊ณ ๋ฅธ N์˜ ์•ฝ์ˆ˜ ์ค‘ K๋ฒˆ์งธ์— ์žˆ๋Š” ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๊ธฐ
import java.util.*;
public class Main {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);

        int N = sc.nextInt();
        int K = sc.nextInt();

        int arr[] = new int[100001];

        for(int i=1; i<N; i++) {
            while (N % i == 0) {
                arr[i] = N;
            }
            Arrays.sort(arr);
        }
        System.out.println(arr[K-1]);
    }
}


์˜ค๋‹ต ์ฒดํฌ


  • ์ž…๋ ฅ์„ ๋งˆ์ณค์Œ์—๋„ ๊ณ„์†ํ•ด์„œ ์ž…๋ ฅ์„ ๋ฐ›๋Š” ๋ฌธ์ œ ๋ฐœ์ƒ
    • arr๋ฅผ intํ˜•์—์„œ โ†’ ArrayList๋กœ ๋ณ€๊ฒฝํ•˜๊ธฐ

    • N์˜ ์•ฝ์ˆ˜๋ฅผ ์ฐพ๋Š” ๋ถ€๋ถ„์—์„œ โ†’ arr.add(i)๋กœ ์•ฝ์ˆ˜๋กœ ์„ ์ •๋œ ์ˆ˜ ์ €์žฅํ•˜๊ธฐ

    • Arrays.sort๋ฅผ โ†’ Collection.sort๋กœ ๋ณ€๊ฒฝํ•˜๊ธฐ

    • K๋ฒˆ์งธ ์ˆ˜๋ฅผ ๋ฐ”๋กœ K-1๋กœ ๊ตฌํ•˜๋˜ ์กฐ๊ฑด์„ โ†’ K โ‰ค arr.size()๋กœ ์ถ”๊ฐ€ํ•ด์„œ ๊ตฌํ•˜๊ธฐ

      //before
      int N = sc.nextInt();
      int K = sc.nextInt();
      
      int arr[] = new int[100001];
      
      for(int i=1; i<N; i++) {
          while (N % i == 0) {
              arr[i] = N;
          }
          Arrays.sort(arr);
      }
      System.out.println(arr[K-1]);
      }
      //after
      int N = sc.nextInt();
      int K = sc.nextInt();
      
      List<Integer> arr = new ArrayList<>();
      
      for(int i=1; i<=N; i++) {
          if (N % i == 0) {
              arr.add(i);
          }
      }
      Collections.sort(arr);
      
      if(K <= arr.size()) {
          System.out.println(arr.get(K-1));
      } else {
          System.out.println(0);
      }
      }


์ตœ์ข… ํ’€์ด


์‹ค์ œ ํ’€์ด ์‹œ๊ฐ„ : 37๋ถ„(์ฒซ ํ’€์ด ์‹œ๊ฐ„ ํฌํ•จ)

  • N ์ž…๋ ฅ๋ฐ›๊ธฐ
  • K ์ž…๋ ฅ๋ฐ›๊ธฐ
  • N์˜ ์•ฝ์ˆ˜ ๊ตฌํ•˜๊ธฐ
    • N % i == 0๋ฅผ ๋งŒ์กฑํ•˜๋Š” ์ˆ˜๋งŒ ๋‚˜์˜ค๋„๋ก ํ•˜๊ธฐ
    • ๊ทธ ๋‹ค์Œ, ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๊ธฐ
  • ์ˆ˜ ๋น„๊ตํ•˜๊ธฐ: ์œ„์—์„œ ๊ณ ๋ฅธ N์˜ ์•ฝ์ˆ˜ ์ค‘ K๋ฒˆ์งธ์— ์žˆ๋Š” ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๊ธฐ
    • K๋ฒˆ์งธ ์ˆ˜ ์กฐ๊ฑด : K โ‰ค arr.size()
import java.util.*;
public class Main {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);

        int N = sc.nextInt();
        int K = sc.nextInt();

        List<Integer> arr = new ArrayList<>();

        for(int i=1; i<=N; i++) {
            if (N % i == 0) {
                arr.add(i);
            }
        }
        Collections.sort(arr);

        if(K <= arr.size()) {
            System.out.println(arr.get(K-1));
        } else {
            System.out.println(0);
        }
    }
}

profile
์–ธ์  ๊ฐ€ ๋‚ด ์ฝ”๋“œ๋กœ ์„ธ์ƒ์— ๊ธฐ์—ฌํ•  ์ˆ˜ ์žˆ๋„๋ก, BE ๊ฐœ๋ฐœ ๊ธฐ๋ก ๋…ธํŠธโ˜˜๏ธ

0๊ฐœ์˜ ๋Œ“๊ธ€