문제
풀이
어떤 수의 십의 자리를 q, 일의 자리를 w이라고 할 때, q + w을 한 sum을 구한 뒤 x = w* 10 + sum % 10으로 초기화해 주며 x와 N이 같아질 때까지 반복하면 됩니다.
q = 26 / 10 = 2, w = 26 % 10 = 6으로 구한뒤, 이 두 개를 합한 sum = 2 + 6 = 8 이 됩니다.
이제, x를 w * 10 + sum % 10한 값인 68로 새롭게 초기화를 해 줍니다.
다시, 68은 q = 6, w= 8로 쪼갤 수 있고, sum = 14 이므로, x = 8 * 10 + 14 % 10 = 80 + 4 = 84가 됩니다.
84는 q = 8, w = 4로 쪼갤 수 있고, sum = 12이므로, x = 4 * 10 + 12 % 10 = 42가 됩니다.
42는 q = 4, w = 2로 쪼갤 수 있고, sum = 6이므로 x = 2 * 10 + 6 % 10 = 20 + 6 = 26으로, 이것은 x와 N이 같아지는 순간입니다. 따라서, 총 4번 만에 26으로 돌아오는걸 확인 가능합니다.
import java.io.*;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(br.readLine());
int a = Integer.parseInt(st.nextToken());
int e = a;
int count = 1;
while (true) {
int b = e / 10;
int c = e % 10;
int d = b + c;
e = Integer.parseInt(c + "" + (d % 10) + "");
if (e == a) {
break;
}
count++;
}
System.out.println(count);
}
}
.
'알고리즘 > 백준' 카테고리의 다른 글
[Java] 백준 2167 - 2차원 배열의 합 (0) | 2022.10.09 |
---|---|
[Java] 백준 1475 - 방 번호 (0) | 2022.07.07 |
[Java] 백준 1924 - 2007년 (0) | 2022.07.06 |
[Java] 백준 1912 - 연속합 (0) | 2022.06.20 |
[Java] 백준 11053 - 가장 긴 증가하는 부분 수열 (0) | 2022.06.17 |