728x90
반응형
BaekJoon 백준 1110 더하기 사이클 문제는 정수 N의 각 자리의 숫자를 더한 다음, N의 가장 오른쪽 자리 수와 앞에서 구한 합의 가장 오른쪽 자리 수를 이어 붙여 새로운 수를 만들 때 몇 번 만에 원래 수로 돌아오는지 구하는 문제이다. 난이도는 Bronze 1이다.
백준 1110 더하기 사이클 문제 정보
출처
- https://www.acmicpc.net/problem/1110
난이도
- 브론즈 1 / Bronze 1
더하기 사이클 문제 요약
- 0보다 크거나 같고, 99보다 작거나 같은 정수 N이 주어질 때 다음과 같은 연산을 할 수 있다.
- N이 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다.
- N의 가장 오른쪽 자리 수와 앞에서 구한 합의 가장 오른쪽 자릿수를 이어 붙이면 새로운 수를 만들 수 있다.
- 위처럼 연산할 때 몇 번 만에 원래 수로 돌아올 수 있는지 N의 사이클의 길이를 구하여 출력한다.
문제 풀이 과정
- 새로운 수를 파라미터로 갖는 재귀 함수를 구현한다.
- 사이클 길이를 카운트한다.
- 각 자릿수를 더하고 새로운 수를 조건에 맞게 구한다.
- 새로운 수가 원래 수와 다르면 재귀 함수를 호출하고, 같으면 return 한다.
- 테스트 케이스 번호, 사이클 길이를 출력한다.
코드 및 설명
def add_cycle(n):
global cnt # 사이클 길이
cnt += 1
add = new = list()
# 각 자리 수 더하기
if len(n) == 1:
n.insert(0, '0')
add = n
else:
add = list(str(int(n[0]) + int(n[1])))
# 새로운 수 구하기
new.append(n[-1])
new.append(add[-1])
# 원래 수와 다르면
if new != N:
add_cycle(new)
else:
return
N = list(input())
cnt = 0
add_cycle(N)
print(cnt)
BaekJoon 백준 1110 더하기 사이클 문제를 파이썬 python으로 풀어보았다. 난이도는 Bronze 브론즈 1이다.
728x90
반응형
'Algorithm Problem Solving > BaekJoon' 카테고리의 다른 글
[BaekJoon] 백준 1924 2007년 (Python / 파이썬) (0) | 2021.08.15 |
---|---|
[BaekJoon] 백준 1157 단어 공부 (Python / 파이썬) (0) | 2021.08.14 |
[BaekJoon] 백준 4344 평균은 넘겠지 (Python / 파이썬) (0) | 2021.08.14 |
[BaekJoon] 백준 2839 설탕 배달 (Python / 파이썬) (0) | 2021.08.14 |
[BaekJoon] 백준 1546 평균 (Python / 파이썬) (0) | 2021.08.13 |
댓글