본문 바로가기
BaekJoon/JAVA

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

by GrayChoi 2020. 2. 12.
반응형

 

https://www.acmicpc.net/problem/1110

 

1110번: 더하기 사이클

0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, 주어진 수의 가장 오른쪽 자리 수와 앞에서 구한 합의 가장 오른쪽 자리 수를 이어 붙이면 새로운 수를 만들 수 있다. 다음 예를 보자. 26부터 시작한다. 2+6 = 8이다. 새로운 수는 68이다. 6+8 = 14이다. 새로운 수는 84이다. 8+4 =

www.acmicpc.net


위의 문제는 BaekJoon Online Judge의 단계별로 풀어보기 중 4단계

 

while문의 카테고리에 포함되어 있는 문제이다.

 

while문으로 하고 if문을 써서 처음 입력한 숫자와 결과 값이 같아지면

 

while문을 탈출하고 결과 값을 보여주는 방식도 있지만

 

코드의 간결화를 위해 do-while문을 사용하였다.

import java.util.Scanner;

public class Question_1110 {
	
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int input = sc.nextInt();
		int count = 0;
		int new_number = input;
		
		do {
			int first = new_number%10;
			int second = new_number/10;
			int result = first + second > 10 ? (first + second)%10 : first + second;
			new_number = (first * 10) + result;
			count++;
		} while(input != new_number);
		
		System.out.println(count);
		
	}

}
반응형

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

[백준] 11047번 : 동전 0(JAVA)  (0) 2020.02.12
[백준] 5585번 : 거스름돈(JAVA)  (0) 2020.02.12
[백준] 2588번 : 곱셈(JAVA)  (0) 2020.02.12
[백준] 1008번 : A/B(JAVA)  (0) 2020.02.12
[백준] 2557번 : Hello World(JAVA)  (0) 2020.02.12

댓글