

<백준> 1110번 더하기 사이클 java 문제풀이알고리즘/백준2022. 1. 5. 22:45
Table of Contents

풀이
import java.util.Scanner;
public class Baekjoon_1110 {
public static void main(String[] args) {
int count = 0;
Scanner sc = new Scanner(System.in);
int oldnum = sc.nextInt(); // 수 입력
int num = oldnum; // if에 사용하기 위해 num에 같은 값 복사
while (true) {
int num10 = num / 10; // 10의 자리 추출
int num1 = num % 10; //1의 자리 추출
num = getNum10(num1) + getNum1(num1, num10);
count++;
if (oldnum == num) //처음 주어진 수와 새로운 수가 같을 경우
break;
}
System.out.println(count);
}
public static int getNum10(int a) {
return a * 10; //추출된 1의 자리 x10
}
public static int getNum1(int a, int b) {
return (a + b) % 10; //더한 수의 1의 자리 추출
}
}
1. 주어진 수의 각 자리 수를 더하여 새로운 수를 구함 ex) 26 -> 2 + 6 = 8, 12 -> 1 + 2 = 3, 79 -> 7 + 9 = 16
2. 주어진 수의 1의 자리에 x10 + 더한 수의 일의 자리
↓
1. num1, num10을 통해 각 자리의 수를 구한 후
2. getNum10 + getNum1으로 새로운 수를 구하였다.
후, 반복문을 빠져나가기 위해 처음 주어졌던 수 (oldnum)과 새로 구한 수 (num)을 비교하여
서로 같을 경우 break문을 통하여 반복문을 종료시켰다.

https://www.acmicpc.net/problem/1110
1110번: 더하기 사이클
0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음,
www.acmicpc.net
'알고리즘 > 백준' 카테고리의 다른 글
<백준> 1712번 손익분기점 C++ 문제풀이 (0) | 2021.02.02 |
---|---|
<백준> 4344번 평균은 넘겠지 C++ 문제풀이 (0) | 2021.01.26 |
<백준> 2753번 윤년 C++ 문제풀이 (0) | 2021.01.08 |
<백준> 2884번 알람시계 C++ 문제풀이 (0) | 2021.01.07 |

@Han_5ung :: 한성 개인 기록장
IT
github : https://github.com/HanSungHyeon