๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 2312_์ˆ˜ ๋ณต์›ํ•˜๊ธฐ

๋ฟŒ์•ผ._. 2024. 2. 13. 10:47

Silver III

๋ฌธ์ œ(์ถœ์ฒ˜: https://www.acmicpc.net/problem/2312)

< ์ˆ˜ ๋ณต์›ํ•˜๊ธฐ >

 

๋ฌธ์ œ ํ’€์ด 

 

์†Œ์ธ์ˆ˜๋ถ„ํ•ด๋ฅผ ํ†ตํ•ด ๊ฐ ์ธ์ˆ˜์™€ ๊ทธ ์ธ์ˆ˜๊ฐ€ ๊ณฑํ•ด์ง„ ํšŸ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

 my solution (Java)

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class _2312_ { // ์ˆ˜ ๋ณต์›ํ•˜๊ธฐ

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

		int t = Integer.parseInt(bf.readLine());
		for (int i = 0; i < t; i++) {
			int num = Integer.parseInt(bf.readLine());

			int idx = 2;
			int cnt = 0;
			while (idx <= num) {
				if (num % idx == 0) {
					num /= idx;
					cnt += 1;
				} else {
					if (cnt > 0) {
						bw.write(idx + " " + cnt + "\n");
						cnt = 0;
					}
					idx++;
				}
			}
			if (cnt > 0) {
				bw.write(idx + " " + cnt + "\n");
			}
		}
		bw.flush();
	}
}
๋ณ€์ˆ˜)
t : ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์ˆ˜
num : ์–‘์˜ ์ •์ˆ˜ N
idx : ์ธ์ˆ˜
cnt : ์ธ์ˆ˜๊ฐ€ ๊ณฑํ•ด์ง„ ํšŸ์ˆ˜

 

ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค. ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์ˆ˜๋งŒํผ ์–‘์˜ ์ •์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›์€ ํ›„ ์†Œ์ธ์ˆ˜๋ถ„ํ•ด๋ฅผ ํ•œ๋‹ค. ์ธ์ˆ˜๊ฐ€ ์ฆ๊ฐ€ํ•˜๋Š” ์ˆœ์œผ๋กœ ์ถœ๋ ฅํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์†Œ์ธ์ˆ˜๋ถ„ํ•ด๋ฅผ ๊ตฌํ•  ๋•Œ 2๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค. ์ •์ˆ˜๋ฅผ idx๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์œผ๋ฉด ์ธ์ˆ˜๋ผ๋Š” ๋œป์ด๋ฏ€๋กœ ๋‚˜๋ˆ„๊ณ  cnt๋ฅผ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค. ๋‚˜๋ˆŒ ์ˆ˜ ์—†๋‹ค๋ฉด ๋‹ค์Œ ์ธ์ˆ˜๋ฅผ ๊ตฌํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์ธ์ˆ˜์™€ ํšŸ์ˆ˜๋ฅผ ์ถœ๋ ฅ ํ›„ idx๋ฅผ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค. 

 

* ๊ณฑํ•ด์ง„ ํšŸ์ˆ˜๊ฐ€ 0์ธ ๊ฒƒ์€ ์ถœ๋ ฅํ•˜๋ฉด ์•ˆ ๋œ๋‹ค๋Š” ๊ฒƒ์„ ์ฃผ์˜ํ•ด์•ผ ํ•œ๋‹ค.