반응형
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 |
댓글