๋ฌธ์
0๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 99๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์ ์๊ฐ ์ฃผ์ด์ง ๋ ๋ค์๊ณผ ๊ฐ์ ์ฐ์ฐ์ ํ ์ ์๋ค. ๋จผ์ ์ฃผ์ด์ง ์๊ฐ 10๋ณด๋ค ์๋ค๋ฉด ์์ 0์ ๋ถ์ฌ ๋ ์๋ฆฌ ์๋ก ๋ง๋ค๊ณ , ๊ฐ ์๋ฆฌ์ ์ซ์๋ฅผ ๋ํ๋ค. ๊ทธ ๋ค์, ์ฃผ์ด์ง ์์ ๊ฐ์ฅ ์ค๋ฅธ์ชฝ ์๋ฆฌ ์์ ์์์ ๊ตฌํ ํฉ์ ๊ฐ์ฅ ์ค๋ฅธ์ชฝ ์๋ฆฌ ์๋ฅผ ์ด์ด ๋ถ์ด๋ฉด ์๋ก์ด ์๋ฅผ ๋ง๋ค ์ ์๋ค. ๋ค์ ์๋ฅผ ๋ณด์.
26๋ถํฐ ์์ํ๋ค. 2+6 = 8์ด๋ค. ์๋ก์ด ์๋ 68์ด๋ค. 6+8 = 14์ด๋ค. ์๋ก์ด ์๋ 84์ด๋ค. 8+4 = 12์ด๋ค. ์๋ก์ด ์๋ 42์ด๋ค. 4+2 = 6์ด๋ค. ์๋ก์ด ์๋ 26์ด๋ค.
์์ ์๋ 4๋ฒ๋ง์ ์๋ ์๋ก ๋์์ฌ ์ ์๋ค. ๋ฐ๋ผ์ 26์ ์ฌ์ดํด์ ๊ธธ์ด๋ 4์ด๋ค.
N์ด ์ฃผ์ด์ก์ ๋, N์ ์ฌ์ดํด์ ๊ธธ์ด๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ N์ด ์ฃผ์ด์ง๋ค. N์ 0๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 99๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์ ์์ด๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ N์ ์ฌ์ดํด ๊ธธ์ด๋ฅผ ์ถ๋ ฅํ๋ค.
์์ ์ ๋ ฅ 1
26
์์ ์ถ๋ ฅ 2
4
์์ ์ ๋ ฅ 2
55
์์ ์ถ๋ ฅ 2
3
์์ ์ ๋ ฅ 3
1
์์ ์ถ๋ ฅ 3
60
์์ ์ ๋ ฅ 4
0
์์ ์ถ๋ ฅ 4
1
ํ์ด
1. ์ ๋ ฅ๊ฐ num์ ์ ๋ ฅ๋ฐ๋๋ค.
2. ์ ๋ ฅ๊ฐ์ด ํ ์๋ฆฌ ์ ์ผ ๋
2-1. 0์ ๋ถ์ฌ ๋ ์๋ฆฌ ์๋ฅผ ๋ง๋ค๊ณ ๋ ์๋ฆฌ ์๋ฅผ ๋ํ๋ค
2-2. ๋ ์๋ฆฌ ์๋ฅผ ๋ํ๊ธฐ ์ ์์ ์ผ์ ์๋ฆฌ ์์ ๋ ์๋ฆฌ ์๋ฅผ ๋ํ ํ ์ผ์ ์๋ฆฌ ์๋ฅผ ํฉํด ์๋ก์ด ์๋ฅผ ๋ง๋ ๋ค
= ์ ๋ ฅ๋ฐ์ ํ ์๋ฆฌ ์๋ฅผ ๋๋ฒ ์ฐ์ํ ์ : input * 10 + input
3. ์ ๋ ฅ๊ฐ์ด ๋ ์๋ฆฌ ์ ์ผ ๋
3-1. ์ ๋ ฅ๊ฐ์ ์ผ์ ์๋ฆฌ ์์ ์ ๋ ฅ๊ฐ์ ๊ฐ ์๋ฆฌ์๋ฅผ ๋ํ ๊ฐ์ ์ผ์ ์๋ฆฌ ์๋ฅผ ํฉํด ์๋ก์ด ์๋ฅผ ๋ง๋ ๋ค
: ( input % 10 ) * 10 + ( (( input / 10 ) + ( input % 10 ) ) % 10 )
4. ๋ฌดํ๋ฃจํ๋ฅผ ์์ฑ. 2,3๋ฒ์ ํฌํจํ if๋ฌธ์ ๋ง๋ค๊ณ if๋ฌธ์ ํต๊ณผํ ํ count++ (์ธ์ดํด 1ํ)
5. ์๋ก์ด ์๊ฐ ๊ธฐ์กด๊ฐ num๊ณผ ๊ฐ์์ง ๊ฒ์ฌ. ๊ฐ์ผ๋ฉด while๋ฌธ์ ํ์ถํ๊ณ count๋ฅผ ์ถ๋ ฅ. ๋ค๋ฅด๋ฉด ์๋ก์ด ์๋ก ๋ค์ ๊ณ์ฐ.
import java.io.*;
import java.util.Scanner;
public class B1110 {
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt(); // ์
๋ ฅ๊ฐ
int count = 0; // ํ์ ์ธ๋ ์นด์ดํธ
int result;
int input = num;
while(true) {
if(input < 10) { // ํ์๋ฆฌ์์ผ๋
result = input * 10 + input;
// 0 ๋ถ์ธ ํ ๋๋ฒ์งธ์๋ฆฌ์ ๊ฐ ์๋ฆฌ์ ๋ํ ๊ฒฐ๊ณผ๊ฐ์ ๋๋ฒ์งธ์๋ฆฌ ํฉ์น ๊ฒฐ๊ณผ
} else {
result = (input % 10) * 10 + (((input / 10) + (input % 10)) % 10);
// ๊ฒฐ๊ณผ = ์ฒซ ์
๋ ฅ๊ฐ ๋๋ฒ์งธ์๋ฆฌ, ๋ ์๋ฆฌ์ ๋ํ ๊ฐ ๋๋ฒ์งธ์๋ฆฌ ํฉ์น ๊ฒฐ๊ณผ
// ์ฒซ ์
๋ ฅ๊ฐ ๋๋ฒ์งธ์๋ฆฌ = ์
๋ ฅ๊ฐ % 10
// ๋ ์๋ฆฌ์ ๋ํ ๊ฐ ๋๋ฒ์งธ์๋ฆฌ = ( ์
๋ ฅ๊ฐ / 10 + ์
๋ ฅ๊ฐ % 10 ) % 10
}
count++;
if(num == result) {
System.out.println(count);
return;
} else {
input = result;
}
}
}
}