반응형
[ Contents ]
1. 문제 (링크 참조)
2. 문제 풀이
0~99 사이의 정수가 입력값으로 주어집니다. 원래의 값으로 돌아가기 위해서는 몇 번의 '더하기 사이클'이 필요한지 구하는 문제입니다. '더하기 사이클'의 규칙은 다음과 같습니다.
각 자리의 숫자를 더합니다. 주어진 수의 1의 자리와 더해서 만든 수의 1의 자리를 이어 붙입니다.
즉 A + B = CD 일 때, BD가 산출됩니다.
예를 들어, 55는 5+5 = 10 이므로 50. 5+0 = 5이므로 5. 0+5 = 5 이므로 55입니다. 총 3번의 더하기 사이클이 필요합니다.
2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학
수학적인 이해가 필요한 문제입니다. 규칙만 이해했다면, 단순히 1의 자리만 구해서 쉽게 판별할 수 있습니다.
3. 코드
N = int(input())
cnt = 1
AB = N
while(True):
CD = AB//10 + AB%10
BD = (AB%10)*10 + CD%10
if BD == N:
break
cnt += 1
AB = BD
print(cnt)
더하기 사이클 규칙을 그대로 구현합니다. AB + CD = BD 이고, N = BD일 때 종료됩니다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
if(n == 0) {
System.out.println(1);
return;
}
int i = 0;
int n1 = n;
int n2 = 0;
for(; n2 != n; i++) {
n2 = n1%10 + n1/10;
n2 = (n2%10) + (n1%10)*10;
n1 = n2;
}
System.out.println(i);
sc.close();
}
}
반응형
'Algorithm' 카테고리의 다른 글
[구현/수학] 백준 1546 평균 - Python, Java (0) | 2022.01.24 |
---|---|
[구현/수학] 백준 2577 숫자의 개수 - Python, Java (0) | 2022.01.23 |
[구현/수학] 백준 2884 알람 시계 - Python, Java (0) | 2022.01.21 |
[구현/수학] 백준 2576 홀수 - Python (0) | 2022.01.20 |
[구현/수학] 백준 13458 시험 감독 - Python (0) | 2022.01.19 |
댓글