코딩테스트 연습

[백준] 1110번 - 더하기 사이클 (JAVA)

zzzin 2022. 2. 5. 09:01

0~99 사이의 정수가 주어졌을 때 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다.

 

그 다음, 주어진 수의 가장 오른쪽 자리 수와 앞에서 구한 합의 가장 오른쪽 자리 수를 이어 붙여 새로운 수를 만든다.

 

결과적으로 새로운 수가 가장 처음 입력받은 수와 동일해질때까지 해당 과정을 반복할 때, 몇 번을 반복해야 하는지를 구하는 문제이다.

 

 

 

예를 들어 26이라는 정수가 주어졌을 때 2+6 = 8이며, 새로운 수는 68이다. 68을 이용하여 계산하면 6+8 = 14이므로 새로운 수는 84이다 위와 같은 과정을 반복한다면 4번만에 원래 수로 돌아올 수 있기 때문에 26의 사이클의 길이는 4이다.

 

 

 


 

결과 출력 예시

 

 


 

 

 

최초로 입력받은 수 n을 이용하여 새로운 수를 계속 만들어내야 하므로, temp변수를 만들어 최초에 입력된 수 n의 값을 저장한다.

 

 


 

 

사이클을 반복하기 위하여 무한루프 while문을 만들고, 그 안의 사이클 계산식을 설정한다. 위와 같은 계산식으로 새로운 수를 생성하고, 생성한 수를 다시 n에 저장한다. 

 

만약 최초로 입력받은 정수와 새롭게 생성된 수가 동일하다면 반복문을 종료하며, 그렇지 않다면 새로운 수 n을 이용하여 다시 반복문을 수행한다.

 

 


 

 

 

정답처리 된 소스코드