๋ฌธ์ ๋งํฌ
4375๋ฒ: 1
2์ 5๋ก ๋๋์ด ๋จ์ด์ง์ง ์๋ ์ ์ n(1 ≤ n ≤ 10000)๊ฐ ์ฃผ์ด์ก์ ๋, ๊ฐ ์๋ฆฟ์๊ฐ ๋ชจ๋ 1๋ก๋ง ์ด๋ฃจ์ด์ง n์ ๋ฐฐ์๋ฅผ ์ฐพ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
www.acmicpc.net
๋์ด๋
๋ฌธ์
ํ์ด ๊ณผ์
์ฒ์์ 1, 11, 111, 1111์ ๋ง๋ค๋ฉด์ n์ผ๋ก ๋๋์ด ๋จ์ด์ก์ ๋๋ฅผ ์ฐพ์๋๋ ์๊ฐ ์ด๊ณผ๊ฐ ๋ฌ๋ค.
์ฌ์ค ์๊ฐํด ๋ณด๋ฉด ๋น์ฐํ ๊ฑฐ๋ค. ์๋ฆฟ์์ ๋ํ ์ ํ์ด ์์ผ๋ 1๋ก๋ง ์ด๋ฃจ์ด์ง 11์๋ฆฌ๊ฐ ๋๋ ์๊ฐ ์ด๋ฏธ intํ(์ฝ 21์ต)์ ์ด๊ณผํ๊ฒ ๋๋ค.
๋๋จธ์ง ์ฐ์ฐ์ ๋ฒ์น
๋์ ํ ๋ชจ๋ฅด๊ฒ ์ด์ ํ์ด๋ฅผ ์ฐธ๊ณ ํ์ฌ "๋๋จธ์ง ์ฐ์ฐ์ ๋ฒ์น"์ ์๊ฒ ๋์๋ค.
์ ์ด๋ ๊ฒ ๋๋์ง ๊ถ๊ธํด์ ์ฆ๋ช ์ ํด๋ดค๋ค.
๊ทธ ๊ณผ์ ์ด ๊ถ๊ธํ๋ค๋ฉด ์ด๋ฅผ ์์ธํ ์ค๋ช ํ ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ๊ณ ๋ฐ๋๋ค.
๋ชจ๋๋ฌ ์ฐ์ฐ์ ์ฑ์ง๊ณผ ์ฆ๋ช
๋ชจ๋๋ฌ ์ฐ์ฐ์ ์ฑ์ง๊ณผ ์ฆ๋ช ์์ ๊ฐ์ด ๋ชจ๋๋ฌ ์ฐ์ฐ์ ๋๋จธ์ง๋ฅผ ๊ตฌํ๋ ์ฐ์ฐ์์ด๋ฉฐ ๋ค์์ ๋ถ๋ฐฐ๋ฒ์น์ด ๋ชจ๋ ์ฑ๋ฆฝํ๋ค. ์ ์ด๋ฐ์ง ๊ถ๊ธํด์ ๊ณ์ ์ฐพ์๋ณด๋ค๊ฐ ๊ฐ์ ํ ์ฐพ์๊ฒ ์นธ ์์นด๋ฐ๋ฏธ์์ ์ฆ๋ช
sexycoder.tistory.com
์์๋ฅผ ๋ค์ด์ ํ์ด
๋ค๋ฅธ ์ฌ๋์ ํ์ด๋ฅผ ๋ด๋ ์ดํด๊ฐ ์๋ผ์ ์ง์ง ๊ฑฐ์ 4์๊ฐ ๋์ ์ดํดํ๊ธฐ ์ํด ๋ ธ๋ ฅํ๋ค.
๋จผ์ 1, 11, 111์ ๊ด๊ณ์ฑ์ ํ์ ํ๋ค.
์ฒ์์๋ 1, 1+10, 1+10+100.. ์ด๋ฐ ์์ผ๋ก ์๊ฐํ๋๋ฐ ๋ฌผ๋ก ์ด ๊ท์น๋ ๋ง์ง๋ง ๋งค๋ฒ ๋ค๋ฅธ ์๊ฐ ๋ํด์ง๊ธฐ ๋๋ฌธ์ ํ์ดํ๊ธฐ ํ๋ค๋ค.
1, 1*10+1, (1*10+1)*10+1... ์ด์ ์ ์ซ์์ 10์ ๊ณฑํ๊ณ 1์ ๋ํ๋ฉด ๊ทธ๋ค์ ์๊ฐ ๋๋ค. ํญ์ ๊ฐ์ ๊ท์น์ ๊ฐ์ง๊ธฐ ๋๋ฌธ์ ํ์ดํ๊ธฐ ์ข๋ค.
๊ทธ ๋ค์ ์์๋ฅผ ์ดํด๋ณด๋ฉฐ ๋ฒ์๊ฐ ๋์ง ์๋๋ก ์๋ฅผ ์ค์ผ ์ ์๋ ๋ฐฉ๋ฒ์ ์ฐพ๋๋ค.
์์ ์ฌ์ง์ ์ดํด๋ณด๋ฉด 111 % n์ ๊ฐ์ด (11% n)*10+1์ ๊ฐ๊ณผ ๊ฐ์ ๊ฒ์ ๋ณผ ์ ์๋ค.
7๋ก ๋๋ ์ง ๋ชซ์ ํญ์ 7๋ก ๋๋ด์ ๋ 0์ด ๋๋ฏ๋ก ํด๋น ์์์ด ๋์จ๋ค. (์ด๊ฑธ ์ดํด ๋ชป ํด์ ์ฅ์ฅ 4์๊ฐ์..)
์ด๋ฅผ ํ ๋๋ก ์์ ์ธ์์ ์ฝ๋๋ฅผ ์์ฑํ๋ค.
์ฝ๋
public class BOJ_4375 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
while (true) {
try {
int n = Integer.parseInt(br.readLine());
int cnt = 1;
int prev = 1;
while ((prev = prev % n) != 0) {
cnt++;
prev = prev * 10 + 1;
}
sb.append(cnt).append("\n");
} catch (Exception e) {
break;
}
}
System.out.println(sb);
}
}
๋๊ธ