๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 2777_์ˆซ์ž ๋†€์ด

๋ฟŒ์•ผ._. 2024. 6. 20. 14:20

Silver II

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

< ์ˆซ์ž ๋†€์ด >

 

๋ฌธ์ œ ํ’€์ด 

 

๊ฐ ์ž๋ฆฟ์ˆ˜๋ฅผ ๊ณฑํ•ด ์ •์ˆ˜ X๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” 2~9๊นŒ์ง€ ์ˆ˜๋กœ ๋‚˜๋ˆ ์ ธ์•ผ ํ•œ๋‹ค. ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์ž๋ฆฟ์ˆ˜ ์ค‘์—์„œ๋Š” ๊ฐ€์žฅ ์ž‘์€ ์–‘์˜ ์ •์ˆ˜๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด ํฐ ์ˆ˜๋ถ€ํ„ฐ ์ž‘์€ ์ˆ˜ ์ˆœ์œผ๋กœ ๋‚˜๋ˆ ์ค€๋‹ค.

 

 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 _2777_ { // ์ˆซ์ž ๋†€์ด

	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 n = Integer.parseInt(bf.readLine());

			int idx = 9, answer = 0;
			if (n == 1) {
				bw.write(1 + "\n");
				continue;
			}
			while (idx > 1) {
				if (n % idx == 0) {
					n /= idx;
					answer += 1;
				} else {
					idx -= 1;
				}
			}
			if (n != 1) {
				bw.write(-1 + "\n");
			} else {
				bw.write(answer + "\n");
			}
		}
		bw.flush();
	}
}
๋ณ€์ˆ˜)
T : ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์ˆ˜
n : ์–‘์˜ ์ •์ˆ˜
idx, answer : ์•ฝ์ˆ˜, ์ž๋ฆฟ์ˆ˜

 

ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค. ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์ˆ˜๋งŒํผ ์–‘์˜ ์ •์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ๋‹ค์Œ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•œ๋‹ค.

 

1) n์ด 1์ผ ๊ฒฝ์šฐ 1์„ ์ถœ๋ ฅํ•œ๋‹ค.

2) 9๋ถ€ํ„ฐ n์„ ๋‚˜๋ˆ ์„œ ๋‚˜๋ˆ ์ง€์ง€ ์•Š์„ ๋•Œ๊นŒ์ง€ ๋‚˜๋ˆˆ๋‹ค. ๋‚˜๋ˆŒ ๋•Œ๋งˆ๋‹ค answer+1์„ ํ•ด์ค€๋‹ค. ๋‚˜๋ˆ ์ง€์ง€ ์•Š๋Š”๋‹ค๋ฉด ๋‚˜๋ˆ„๋Š” ์ˆ˜๋ฅผ 1 ๊ฐ์†Œ์‹œํ‚จ๋‹ค.

3) ์ตœ์ข… n ๊ฐ’์ด 1์ด ์•„๋‹ˆ๋ผ๋ฉด ์ž๋ฆฟ์ˆ˜์˜ ๊ณฑ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์—†๋‹ค๋Š” ๋œป์ด๋ฏ€๋กœ -1์„ ์ถœ๋ ฅํ•œ๋‹ค

4) ์ตœ์ข… n ๊ฐ’์ด 1์ด๋ผ๋ฉด answer์„ ์ถœ๋ ฅํ•œ๋‹ค.



 

'๐ŸŒžAlgorithm > ๐Ÿ”ฅBaekjoon' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Baekjoon] 1474_๋ฐ‘ ์ค„  (1) 2024.06.24
[Baekjoon] 26170_์‚ฌ๊ณผ ๋นจ๋ฆฌ ๋จน๊ธฐ  (0) 2024.06.21
[Baekjoon] 5002_๋„์–ด๋งจ  (0) 2024.06.19
[Baekjoon] 2072_์˜ค๋ชฉ  (0) 2024.06.18
[Baekjoon] 1120_๋ฌธ์ž์—ด  (0) 2024.06.17