비버놀로지

[BAEKJOON 백준] 1110 더하기 사이클 본문

ALGORITM/JAVA

[BAEKJOON 백준] 1110 더하기 사이클

KUNDUZ 2021. 1. 10. 15:05
728x90

www.acmicpc.net/problem/1110

 

1110번: 더하기 사이클

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

www.acmicpc.net

26부터 시작한다. 2+6 = 8이다. 새로운 수는 68이다. 6+8 = 14이다. 새로운 수는 84이다. 8+4 = 12이다. 새로운 수는 42이다. 4+2 = 6이다. 새로운 수는 26이다.

위의 예는 4번만에 원래 수로 돌아올 수 있다. 따라서 26의 사이클의 길이는 4이다.

 

N은 두자리 수이기 때문에, 새로운 수는 입력값을 10으로 나눈값과 10으로 나눴을때 나오는 나머지값을 더해준 값을 새로운 값으로 만들어준다.

 

그리고 그 더해준 값의 앞자리는 입력값의 일의 자리수가 새로운 수의 십의 자리수가 되고 되해준 값이 일의 자리가 된다.

 

그리고 새로운 수를 만들때 입력 수의 십의 자리와 일의 자리의 합이 두자리 일경우 일의자리를 가져와 일의 자리로 쓰고, 이전 수의 일의 자리 수를 십의 자리로 만들어 새로운 수를 만들어 준다.

 

그렇게 만들어진 수가 처음 수와 같아질때 몇번 새로운 수를 만들었는지를 출력해 준다.

 

 

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		int N=sc.nextInt();
		int cnt=0;
		int temp=N;
		int temp2=0;
		while(true) {
			temp2=(temp/10)+(temp%10);
			temp=(temp%10)*10+(temp2%10);
			cnt++;
			if(temp==N) {
				break;
			}
		}
		System.out.println(cnt);
	}
}

 

728x90

'ALGORITM > JAVA' 카테고리의 다른 글

[BAEKJOON 백준] 1212 8진수 2진수  (0) 2021.01.10
[BAEKJOON 백준] 1157 단어 공부  (0) 2021.01.10
[BAEKJOON 백준] 1074 Z  (0) 2021.01.10
[BAEKJOON 백준] 1032 명령 프롬프트  (0) 2021.01.10
[BAEKJOON 백준] 1008 A/B  (0) 2021.01.10
Comments