๊ธฐ๋ก๋ฐฉ

BOJ_1747 : ์†Œ์ˆ˜&ํŒฐ๋ฆฐ๋“œ๋กฌ ๋ณธ๋ฌธ

CodingTest/Java

BOJ_1747 : ์†Œ์ˆ˜&ํŒฐ๋ฆฐ๋“œ๋กฌ

Soom_1n 2024. 2. 20. 10:40

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

 

1747๋ฒˆ: ์†Œ์ˆ˜&ํŒฐ๋ฆฐ๋“œ๋กฌ

์–ด๋–ค ์ˆ˜์™€ ๊ทธ ์ˆ˜์˜ ์ˆซ์ž ์ˆœ์„œ๋ฅผ ๋’ค์ง‘์€ ์ˆ˜๊ฐ€ ์ผ์น˜ํ•˜๋Š” ์ˆ˜๋ฅผ ํŒฐ๋ฆฐ๋“œ๋กฌ์ด๋ผ ๋ถ€๋ฅธ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 79,197๊ณผ 324,423 ๋“ฑ์ด ํŒฐ๋ฆฐ๋“œ๋กฌ ์ˆ˜์ด๋‹ค. ์–ด๋–ค ์ˆ˜ N (1 ≤ N ≤ 1,000,000)์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, N๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ ,

www.acmicpc.net



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

  • ์†Œ์ˆ˜๋ฅผ ๊ตฌํ•œ ํ›„ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ํŒฐ๋ฆฐ๋“œ๋กฌ์„ ์ฐพ์•„ ์ถœ๋ ฅํ•œ๋‹ค.

๐Ÿ”ธ ๋ฌธ์ œ ํ’€์ด ๐Ÿ”ธ

  • N์ด 100๋งŒ๊นŒ์ง€ ์ž…๋ ฅ๋˜๋Š”๋ฐ, ์—ฌ์œ ์žˆ๊ฒŒ 1000๋งŒ๊นŒ์ง€ ์†Œ์ˆ˜๋ฅผ ๊ตฌํ•œ๋‹ค.
  • ํŒฐ๋ฆฐ๋“œ๋กฌ์€ ์ˆ˜๋ฅผ char๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜ํ•œ ๋’ค ํˆฌํฌ์ธํ„ฐ๋กœ ํŒ๋‹จํ•œ๋‹ค.

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

import java.io.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        int N = Integer.parseInt(br.readLine());
        final int MAX = 10_000_000;

        boolean[] pn = new boolean[MAX];
        pn[1] = true;

        for (int i = 2; i < MAX; i++) {
            if (!pn[i]) {
                int mul = 2;
                while (i * mul < MAX) {
                    pn[i * mul++] = true;
                }
            }
        }

        for (int i = N; i < MAX; i++) {
            if (!pn[i] && palindrome(i)) {
                bw.write(Integer.toString(i));
                break;
            }
        }

        bw.flush();
    }

    private static boolean palindrome(int num) {
        char[] chars = String.valueOf(num).toCharArray();
        int start = 0;
        int end = chars.length - 1;

        while (start < end) {
            if (chars[start++] != chars[end--])
                return false;
        }
        return true;
    }
}

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

  • ์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด๋กœ 1000๋งŒ๊นŒ์ง€์˜ ์†Œ์ˆ˜๋ฅผ ๊ตฌํ•œ๋‹ค.
  • N์ด์ƒ 1000๋งŒ ๋ฏธ๋งŒ์˜ ์†Œ์ˆ˜ ์ค‘์—์„œ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ํŒฐ๋ฆฐ๋“œ๋กฌ์„ ์ฐพ๋Š”๋‹ค.
    • ํˆฌํฌ์ธํ„ฐ๋ฅผ ์ด์šฉํ•ด ํŒ๋‹จํ•œ๋‹ค.
    • ๊ฐ€์žฅ ๋จผ์ € ๋ฐœ๊ฒฌ๋˜๋Š” ํŒฐ๋ฆฐ๋“œ๋กฌ์„ ์ถœ๋ ฅํ•œ๋‹ค.

๐Ÿ”ธ end ๐Ÿ”ธ

  • ์†Œ์ˆ˜์™€ ํŒฐ๋ฆฐ๋“œ๋กฌ์„ ๊ตฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์•„์ฃผ ๊ฐ„๋‹จํ–ˆ๋‹ค.
  • ๋‹ค๋งŒ, ์†Œ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฒ”์œ„๊ฐ€ ๊ณ ๋ฏผ๋˜์—ˆ๋Š”๋ฐ, ์‹œ๊ฐ„์ด ๋„‰๋„‰ํ•ด์„œ 1000๋งŒ๊นŒ์ง€ ์—ฌ์œ ๋กญ๊ฒŒ ๊ตฌํ•ด๋„ ๊ดœ์ฐฎ์•˜๋‹ค.

 

728x90

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

BOJ_11689 : GCD(n, k) = 1  (0) 2024.02.21
BOJ_1016 : ์ œ๊ณฑ ใ„ดใ„ด ์ˆ˜  (0) 2024.02.20
BOJ_1456 : ๊ฑฐ์˜ ์†Œ์ˆ˜  (0) 2024.02.18
BOJ_11444 : ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜ 6  (0) 2024.02.12
BOJ_1744 : ์ˆ˜ ๋ฌถ๊ธฐ  (0) 2024.02.11