-
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); getSum(n, n, 1); } static void getSum(int num, int n, int ans) { int num1, num2, sum, result; if (num < 10) { num1 = 0; num2 = num; } else { num1 = num / 10; num2 = num % 10; } sum = num1 + num2; result = num2*10 + sum%10; if (result != n) { getSum(result, n, ++ans); } else { System.out.println(ans); } } }
- 이렇게까지 밖에 생각이 안났다.. while 문 쓰는게 익숙하지 않다..
import java.io.*; 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)); int n, first, a, b; int result = 0; n = Integer.parseInt(br.readLine()); first = n; do { if(n < 10) { a = 0; b = n; }else { a = n / 10; b = n % 10; } n = b*10 + (a+b)%10; result++; }while(n != first); bw.write(result+"\n"); bw.flush(); } }
- 깔끔한 풀이
- 한 번은 무조건 돌아야하니까 do while 문 생각을 했는데도 코드를 못적었다.