본문 바로가기

Android ᙏ̤̫͚/차근차근 JAVA

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

 

BOJ1110

 

1110번: 더하기 사이클

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

www.acmicpc.net

 

[문제]

0 ≤ N ≤ 99 조건을 만족하는 정수 N이 주어졌을 때, 각 자리의 숫자를 더하고 그 다음, 가장 오른쪽 자리 수와 앞에서 구한 합의 가장 오른쪽 자리 수를 이어 붙여 새로운 수를 만든 후 이 과정을 반복한다. 이 때, 원래 수로 돌아오는 동안 몇 번의 사이클이 필요한지 사이클의 길이를 구하는 프로그램 작성

 

<4단계> while문

<알고리즘 분류> 수학, 구현

 

[input]

첫째 줄에 N 입력받기 (≤ N ≤ 99)

[output]

첫째 줄에 N의 사이클의 길이 print

 


 

 


 

[풀이 방법]

  1. 0과 99 사이의 정수 N 입력받기 / 변수 a에 N 복사

  2. 각 자리의 수의 합 구하여 변수 b에 저장

  3. a의 일의 자리 수가 십의 자리 수, b의 일의 자리 수가 일의 자리 수인 변수 c 생성

  4. c가 N이 될 때까지 2-3번 과정 반복 / cycle 증가

  5. 사이클 길이 cycle print

 


 

실패 코드

  - 0을 입력한 경우 while문에 들어가지 못해 cycle이 0으로 출력되어 옳지 않은 결과 얻어서 틀림

 

성공 코드

  - 0의 경우 cycle 값을 1로 출력받기 위해 while문을 무한루프로 수정한 후, if문을 추가함. 

'Android ᙏ̤̫͚ > 차근차근 JAVA' 카테고리의 다른 글

[백준 2562번] 최댓값  (0) 2021.01.28
[백준 10818번] 최소, 최대  (0) 2021.01.28
[백준 10951번] A + B - 4  (0) 2021.01.27
[백준 10952번] A + B - 5  (0) 2021.01.27
[백준 10871번] X보다 작은 수  (0) 2021.01.26