๊ธฐ๋ก๋ฐฉ

Lv.2 : k์ง„์ˆ˜์—์„œ ์†Œ์ˆ˜ ๊ฐœ์ˆ˜ ๊ตฌํ•˜๊ธฐ ๋ณธ๋ฌธ

CodingTest/Java

Lv.2 : k์ง„์ˆ˜์—์„œ ์†Œ์ˆ˜ ๊ฐœ์ˆ˜ ๊ตฌํ•˜๊ธฐ

Soom_1n 2023. 11. 8. 09:58

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

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr



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

  • ์ž…๋ ฅ๋ฐ›์€ ์ •์ˆ˜ n์„ k์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ ๋’ค 0์œผ๋กœ ๊ตฌ๋ถ„ํ•ด ๋‚˜์˜จ ๊ฐ’๋“ค ์ค‘ ์†Œ์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

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

  • ๋จผ์ € k์ง„์ˆ˜ ๋ณ€ํ™˜ ๋ฐ 0์œผ๋กœ ์ž˜๋ผ ๋ฌธ์ž์—ด ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•œ๋‹ค.
  • ๋ฐฐ์—ด์˜ ๋ฌธ์ž ํ•˜๋‚˜์”ฉ ์†Œ์ˆ˜์ธ์ง€ ํŒ๋ณ„ํ•œ๋‹ค.

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

class Solution {
    public int solution(int n, int k) {
        // ์ง„์ˆ˜ ๋ณ€ํ™˜ & 0์œผ๋กœ ๊ตฌ๋ถ„
        String[] ss = Integer.toString(n, k).split("0+");

        // ์†Œ์ˆ˜ ํŒ๋ณ„
        int answer = 0;

        for (String s : ss) {
            boolean flag = true;
            Long num = Long.parseLong(s);

            if (num < 2) continue;

            int max = (int)Math.sqrt(num);
            for (int i = 2; i <= max; i++) {
                if (num % i == 0) {
                    flag = false;
                    break;
                }
            }

            if (flag) answer++;
        }

        return answer;
    }
}

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

  • Integer.toString()์„ ํ†ตํ•ด 3~10์ง„์ˆ˜ ๋ณ€ํ™˜์„ ์‰ฝ๊ฒŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • String.split()์œผ๋กœ ๋ฌธ์ œ ์กฐ๊ฑด์— ๋”ฐ๋ผ 0์„ ๊ธฐ์ค€์œผ๋กœ ๋ฌธ์ž์—ด์„ ๋งŒ๋“œ๋Š”๋ฐ, ์ค‘๋ณต๋˜๋Š” 0๋„ ํฌํ•จํ•˜๊ธฐ ์œ„ํ•ด ์ •๊ทœํ‘œํ˜„์‹์— '+'๋ฅผ ๋ถ™์ธ๋‹ค.
  • ๊ฐ ๋ฌธ์ž์—ด์˜ ์†Œ์ˆ˜ ํŒ๋ณ„์„ ์œ„ํ•ด ์ •์ˆ˜๋กœ ๋ณ€ํ™˜ ๋’ค, 2๋ถ€ํ„ฐ ์ •์ˆ˜์˜ ์ œ๊ณฑ๊ทผ๊นŒ์ง€ ๋‚˜๋‰˜๋Š” ๊ฐ’์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.
    • ๋ฌธ์ž์—ด์„ ์ •์ˆ˜๋กœ ๋ณ€ํ™˜ํ•  ๋•Œ Integer์˜ ๋ฒ”์œ„๋ฅผ ์ดˆ๊ณผํ•˜๋ฏ€๋กœ long์œผ๋กœ ์ €์žฅํ•ด์•ผ ํ•œ๋‹ค.
    • ๋‚˜๋‰˜๋Š” ๊ฐ’์ด ์—†๋‹ค๋ฉด ์†Œ์ˆ˜์ด๋‹ค.
  • ์†Œ์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

๐Ÿ”ธ end ๐Ÿ”ธ

  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต ํžŒํŠธ ๋ชจ์Œ์ง‘์— ํฌํ•จ๋˜๋Š” ๋ฌธ์ œ์—ฌ์„œ ํžŒํŠธ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์—ˆ๋‹ค.
    • ์†Œ์ˆ˜๋ฅผ ํŒ๋ณ„ํ•˜๊ธฐ์œ„ํ•ด ์ œ๊ณฑ๊ทผ๊นŒ์ง€ ๊ฒ€์‚ฌํ•œ๋‹ค๋Š” ๊ฒƒ๊ณผ long์œผ๋กœ ์จ์•ผํ•œ๋‹ค๋Š” ํžŒํŠธ์˜€๋Š”๋ฐ ๊ธฐ์กด ์ฝ”๋“œ์—์„œ ๋‘˜ ๋‹ค ํ•ด๋‹น๋˜์—ˆ๋‹ค.
    • ์ •์ˆ˜๋ฅผ int๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ์†Œ์ˆ˜ ํŒ๋ณ„์€ ์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด๋ฅผ ์ผ์—ˆ๋Š”๋ฐ, long์œผ๋กœ ๋ฐ”๊พธ๊ณ  ๋‚˜๋‹ˆ ์ ์šฉํ•  ์ˆ˜ ์—†์–ด์„œ ์ œ๊ณฑ๊ทผ ๋ฐฉ๋ฒ•์œผ๋กœ ๋ณ€๊ฒฝํ•ด์•ผ ํ–ˆ๋‹ค.
    • ๋ฐฐ์—ด์ด long ํฌ๊ธฐ๊ฐ€ ๋œ๋‹ค๋ฉด ์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด๋Š” ์“ธ ์ˆ˜ ์—†๋‹ค๋Š”๊ฑธ ์ƒˆ๋กญ๊ฒŒ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์—ˆ๋‹ค.
  • ์ƒ๊ฐ๋ณด๋‹ค ๋ฌธ์ œ๋“ค์ด ์•Œ์ฐจ๊ณ  ์„ค๋ช…์ด ์ž˜ ๋˜์–ด์žˆ์–ด์„œ ๋ชจ์Œ์ง‘์˜ ๋ฌธ์ œ๋งŒ ๋”ฐ๋กœ ํ’€์–ด๋„ ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค.

728x90

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

Lv.2 : n์ง„์ˆ˜ ๊ฒŒ์ž„  (0) 2023.11.11
Lv.2 : ์••์ถ•  (0) 2023.11.09
Lv.2 : ๋‰ด์Šค ํด๋Ÿฌ์Šคํ„ฐ๋ง  (0) 2023.11.07
Lv.2 : ํ”„๋กœ์„ธ์Šค  (0) 2023.11.03
BOJ_1235 : ํ•™์ƒ ๋ฒˆํ˜ธ  (0) 2023.11.02