๋ฌธ์ (์ถ์ฒ: 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 |