엄지월드

백준 2960 반례 본문

알고리즘

백준 2960 반례

킨글 2023. 1. 24. 09:25

반례

11 10

-> 10이 나와야 함

i = 2 cnt = 1 K = 10 idx = 2 n = 1
i = 4 cnt = 2 K = 10 idx = 2 n = 2
i = 6 cnt = 3 K = 10 idx = 2 n = 3
i = 8 cnt = 4 K = 10 idx = 2 n = 4
i = 10 cnt = 5 K = 10 idx = 2 n = 5
i = 3 cnt = 6 K = 10 idx = 3 n = 1
i = 9 cnt = 7 K = 10 idx = 3 n = 3
i = 5 cnt = 8 K = 10 idx = 5 n = 1
i = 7 cnt = 9 K = 10 idx = 7 n = 1
i = 11 cnt = 10 K = 10 idx = 11 n = 1

 

 

코드

package Baekjoon;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;

public class BOK_2960 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());

        int N = Integer.parseInt(st.nextToken());
        int K = Integer.parseInt(st.nextToken());

        int[] arr = new int[N+1];

        int idx = 2;
        int cnt = 0;
        int n = 1;

        boolean is = false;

        while(true) {
            n = 1;
            for (int i = idx; i <= N; i = idx * n )  {
                if(arr[i] == 0){
                    arr[i]++;
                    cnt++;
                    System.out.println("i = " + i +" cnt = "+cnt +" K = "+K +" idx = "+idx +" n = "+n);
                    if(cnt == K){
                        System.out.println(i);
                        is = true;
                        break;
                    }
                }
                n++;
            }
            idx++;

            if(is) break;
            if(idx > N) break;
        }

    }
}

 

Comments