글 작성자: 취업중인 피터팬
728x90

https://www.acmicpc.net/problem/1110

 

1110번: 더하기 사이클

0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음,

www.acmicpc.net

사용 언어 : Java 11

 

조금 시간이 걸렸습니다. 수식을 하나로 만들면 훨씬 편하다는 걸 나중에 알았습니다. 가끔 시간 초과라는 에러가 뜨는데 코드가 무한루프를 돌면 그런 에러가 뜨는거 같습니다. 코드를 먼저 실행하여 확인 후 제출하면 됩니다.

 

정답

import java.util.*;

public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        
        int n;
        int sum;
        int temp;
        int num = 1;
        
        n = sc.nextInt();
        
        sum = (n/10) + (n%10);
        temp = ((n%10)*10) + (sum%10);
        
        while(n != temp){
            sum = (temp/10) + (temp%10);
            
            temp = ((temp%10)*10) + (sum%10);
            num++;
        }
        
        System.out.println(num);
        
    }
}