๊ธฐ๋ก๋ฐฉ

BOJ_2960 : ์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด ๋ณธ๋ฌธ

CodingTest/Java

BOJ_2960 : ์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด

Soom_1n 2023. 1. 16. 23:39

๐Ÿ‘‰ ๋ฌธ์ œ๋งํฌ

 

2960๋ฒˆ: ์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด

2, 4, 6, 8, 10, 3, 9, 5, 7 ์ˆœ์„œ๋Œ€๋กœ ์ง€์›Œ์ง„๋‹ค. 7๋ฒˆ์งธ ์ง€์›Œ์ง„ ์ˆ˜๋Š” 9์ด๋‹ค.

www.acmicpc.net



๐Ÿ”ธ ๋ฌธ์ œ ๋ถ„์„ ๐Ÿ”ธ

  • 2๋ถ€ํ„ฐ n๊นŒ์ง€ ์ˆ˜๋ฅผ ์„ ํƒํ•œ๋‹ค.
    • ์„ ํƒํ•œ ์ˆ˜์™€ n๊นŒ์ง€์˜ ๋ฐฐ์ˆ˜๋“ค์„ ์ฐจ๋ก€๋กœ ์ง€์šด๋‹ค.
    • ์ง€์šฐ์ง€ ์•Š์€ ์ˆ˜๊ฐ€ ๋‚จ์•„์žˆ๋‹ค๋ฉด ๋ฐ˜๋ณตํ•œ๋‹ค.
  • k๋ฒˆ์งธ ์ง€์šด ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

๐Ÿ”ธ ์ฝ”๋“œ ๐Ÿ”ธ

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;

        boolean[] arr = new boolean[n + 1];
        for (int i = 2; i <= n; i++) {
            if (!arr[i]) {
                int j = 0;
                while (i * ++j <= n) {
                    if (!arr[i * j]) {
                        arr[i * j] = true;
                        if (++count == k) {
                            System.out.println(i * j);
                            System.exit(0);
                        }
                    }
                }
            }
        }
    }
}

๐Ÿ”ธ ์ฝ”๋“œ ํ•ด์„ ๐Ÿ”ธ

  • ์ง€์šด ์ˆ˜๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ธ boolean๋ฐฐ์—ด arr๋ฅผ n+1ํฌ๊ธฐ๋กœ ์„ ์–ธํ•ด ์ธ๋ฑ์Šค๋ฅผ ์ˆ˜๋กœ ํ™œ์šฉํ•œ๋‹ค.
  • 2๋ถ€ํ„ฐ n๊นŒ์ง€ ๋ฐฐ์—ด arr๋ฅผ ์ˆœํšŒํ•˜๋ฉฐ ๊ณ„์‚ฐํ•œ๋‹ค.
    • ๋งŒ์•ฝ arr[i]๊ฐ€ false๋ผ๋ฉด ์•„์ง ์ง€์šฐ์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ ๋ฐฐ์ˆ˜๋ฅผ ๋ชจ๋‘ ์ง€์›Œ์ค€๋‹ค.
    • j๋Š” i์— ๊ณฑํ•  ๊ฐ’์œผ๋กœ, 1๋ถ€ํ„ฐ i * j๊ฐ€ n์ด ๋„˜์ง€ ์•Š์„ ๋•Œ ๊นŒ์ง€ 1์”ฉ ๋”ํ•œ๋‹ค.
    • arr[i * j]๊ฐ€ ์•„์ง ์ง€์šฐ์ง€ ์•Š์€ ์ˆ˜๋ผ๋ฉด, ์นด์šดํŠธํ•˜๋ฉฐ true๊ฐ’์„ ์ €์žฅํ•œ๋‹ค.
    • ์นด์šดํŠธ๊ฐ€ k๊ฐ€ ๋˜๋ฉด i * j๋ฅผ ์ถœ๋ ฅํ•˜๊ณ , ํ”„๋กœ๊ทธ๋žจ์„ ์ข…๋ฃŒํ•œ๋‹ค.

 


๐Ÿ”ธ end ๐Ÿ”ธ

  • ์†Œ์ˆ˜๊ณ„์‚ฐ์„ ๋นจ๋ฆฌํ•˜๊ธฐ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด์–ด์„œ ์‰ฝ๊ฒŒ ํ’€ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

728x90

'CodingTest > Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

BOJ_2587 : ๋Œ€ํ‘œ๊ฐ’2  (0) 2023.01.17
BOJ_10610 : 30  (0) 2023.01.16
BOJ_3085 : ์‚ฌํƒ• ๊ฒŒ์ž„  (0) 2023.01.15
BOJ_2304 : ์ฐฝ๊ณ  ๋‹ค๊ฐํ˜•  (0) 2023.01.15
BOJ_10972 : ๋‹ค์Œ ์ˆœ์—ด  (0) 2023.01.14