본문 바로가기
알고리즘/백준

백준 1110번 더하기 사이클 자바 java

by 클로드 2021. 4. 10.
반응형

문제

 

풀이

 

1 ~ 9까지 1글자인 숫자는 1 -> 11, 2 -> 22, 3 -> 33 .. 9 -> 99 와 같이 11을 곱하는 것으로 처리를 하였고

각 자리수를 더하기 = (10의 자릿수는 10을 나눈 값) + (1의 자릿수는 10으로 나눈 나머지 값)

새로운 수 = (주어진 수를 10으로 나눈 나머지 값에서 * 10) + (각 자릿수 더한 값을 10으로 나눈 나머지 값)

count를 세면서 새로운 수가 N값과 같으면 while을 탈출하고 count를 출력하게끔 해서 해결하였다

 

코드

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        int num = N;
        int count = 0;

        while (true) {
            if (count != 0 && N == num) {
                break;
            }

            //1글자 일때
            if (num < 10) {
                num = num * 11;
                count++;
                continue;
            }

            int sum = num / 10 + num % 10;
            num = num % 10 * 10 + sum % 10;
            count++;
        }

        System.out.println(count);
    }
}

 

출처

www.acmicpc.net/problem/1110

반응형

댓글