my study.

Coding Test/Baekjoon

[백준] 1110 더하기 사이클, java

fftl 2020. 12. 21. 19:46

www.acmicpc.net/problem/1110

 

1110번: 더하기 사이클

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

www.acmicpc.net

import java.util.*;

public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in); //입력값을 받아오기 위한 스캐너
        int n = sc.nextInt();                //공백이전까지의 숫자를 받아옴
        int first = n;                       //처음에 받아온 숫자를 first에 넣어줌
        int count = 0;                       //몇번의 시도만에 돌아올지 count를 담아줄 변수
        while(true){
            if(n == 0){                         //n이 0이면 바로 count=1 
                count=1;
                break;                          //바로종료
            }
            if(count==0&&n<10){                 //처음시작할때 n이 10보다 작을경우에는 따로 계산함
                n = n+n*10;                     //0+n=n => nn 이런 형식을 표현하기위함
                count++;
            } else {                            //10 이상일경우
                n = (n%10)*10+(n/10+n%10)%10;   //메인 공식
                count++;                        //카운트를 올려줌
                if(n == first){                 //만약 공식을 통해 나온 n이 첫번째 수로 돌아왔으면 종료
                    break;
                }
            }
        }
        System.out.println(count); //count를 출력 
        
        sc.close();
        }
}

'Coding Test > Baekjoon' 카테고리의 다른 글

[백준] 3052 나머지, java  (0) 2020.12.21
[백준] 1546 평균, java  (0) 2020.12.21
[백준] 10817 세 수, java  (0) 2020.12.21
[백준] 4344 평균은 넘겠지, java  (0) 2020.12.21
[백준] 2577 숫자의 개수, java  (0) 2020.12.21