๊ธฐ๋ก๋ฐฉ

BOJ_2312 : ์ˆ˜ ๋ณต์›ํ•˜๊ธฐ ๋ณธ๋ฌธ

CodingTest/Java

BOJ_2312 : ์ˆ˜ ๋ณต์›ํ•˜๊ธฐ

Soom_1n 2023. 2. 10. 08:44

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

 

2312๋ฒˆ: ์ˆ˜ ๋ณต์›ํ•˜๊ธฐ

์ฒซ์งธ ์ค„์— ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋งˆ๋‹ค ์–‘์˜ ์ •์ˆ˜ N (2 ≤ N ≤ 100,000)์ด ์ฃผ์–ด์ง„๋‹ค.

www.acmicpc.net



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

  • ์–‘์˜ ์ •์ˆ˜ N์ด ์ฃผ์–ด์ง€๋ฉด ์†Œ์ธ์ˆ˜ ๋ถ„ํ•ด ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.
  • 2๋ถ€ํ„ฐ N๊นŒ์ง€ ๋‚˜๋ˆ„๋ฉฐ, ๋ชซ์ด 1์ด ๋  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค.
    • ๋‚˜๋ˆˆ ์ˆ˜๋ฅผ ์นด์šดํŠธํ•œ๋‹ค
  • ์นด์šดํŠธํ•œ ๋‚˜๋ˆˆ ์ˆ˜ ๋“ค์ค‘์—์„œ ๊ฐ’์ด 1 ์ด์ƒ์ธ ๊ฒƒ๋“ค๋งŒ ์ถœ๋ ฅํ•œ๋‹ค.

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

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int tc = sc.nextInt();

        StringBuilder sb = new StringBuilder();

        for (int t = 0; t < tc; t++) {
            int n = sc.nextInt();
            int[] arr = new int[n+1];
            int temp = n, pt = 2;

            while (temp > 1) {
                if (temp % pt == 0) {
                    arr[pt]++;
                    temp /= pt;
                }
                else {
                    pt++;
                }
            }

            for (int i = 2; i < n+1; i++) {
                if (arr[i] > 0) {
                    sb.append(i + " " + arr[i] + "\n");
                }
            }
        }
        sb.deleteCharAt(sb.length()-1);
        System.out.print(sb);
    }
}

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

  • temp์˜ ์ดˆ๊ธฐ๊ฐ’์œผ๋กœ n์„ ์ €์žฅํ•œ๋‹ค.
  • temp๊ฐ€ 1์ด ๋  ๋•Œ๊นŒ์ง€ ๊ณ„์‚ฐ์„ ๋ฐ˜๋ณตํ•œ๋‹ค.
    • temp๋ฅผ pt๋กœ ๋‚˜๋ˆ  0์ด๋˜๋ฉด arr[pt]์˜ ๊ฐ’์„ 1 ์ฆ๊ฐ€์‹œํ‚จ๋‹ค.
      • temp๊ฐ’์„ pt๋กœ ๋‚˜๋ˆˆ ๋ชซ์œผ๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค.
    • ๋‚˜๋ˆ ์„œ 0์ด ๋˜์ง€ ์•Š์œผ๋ฉด pt๋ฅผ +1 ์‹œํ‚จ๋‹ค.
  • arr ์ค‘์— ๊ฐ’์ด 1 ์ด์ƒ์ธ ๊ฒฝ์šฐ๋งŒ ์ถœ๋ ฅํ•œ๋‹ค.

๐Ÿ”ธ end ๐Ÿ”ธ

  • ๊ฐ„๋‹จํžˆ ํ’€์—ˆ๋˜ ๊ฒƒ ๊ฐ™์€๋ฐ, ์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด๋กœ๋„ ํ’€ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ ๊ฐ™๋‹ค.

728x90

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

BOJ_1954 : ํ™”ํ•™์‹คํ—˜  (0) 2023.02.10
BOJ_1992 : ์ฟผ๋“œํŠธ๋ฆฌ  (0) 2023.02.10
BOJ_7507 : ์˜ฌ๋ฆผํ”ฝ ๊ฒŒ์ž„  (0) 2023.02.07
BOJ_2630 : ์ƒ‰์ข…์ด ๋งŒ๋“ค๊ธฐ  (0) 2023.02.05
BOJ_7569 : ํ† ๋งˆํ†   (0) 2023.02.03