문제
1110번: 더하기 사이클
0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음,
www.acmicpc.net
알고리즘
- 두 정수를 더할 때는 int로 더한다.
- 두 정수를 붙일 때는 str으로 붙인다.
코드
import sys
n = str(sys.stdin.readline())
res = []
cnt = 0
print(n)
# 입력받은 정수가 두자릿수이면 1의 자리 수의 0을 추가한다.
if len(n) == 2:
n = "0" + n
while True:
# 새로운 수를 리스트에 추가한다.
res.append(n)
# 두 정수를 더한다.
temp = int(n[0]) + int(n[1])
# 두 정수중 오른쪽 자리 수와 더한 수의 오른쪽 자리 수를 붙인다.
n = n[1] + str(temp)[-1]
# 리스트에 똑같은 수가 있으면 반복을 멈춘다.
if n in res:
break
# 사이클 횟수 카운트
cnt += 1
print(cnt)
github
GitHub - junjange/CodingTest: 내가 푼 코딩 테스트 문제와 해결법
내가 푼 코딩 테스트 문제와 해결법. Contribute to junjange/CodingTest development by creating an account on GitHub.
github.com
'CodingTest > Baekjoon' 카테고리의 다른 글
[baekjoon] 백준 10799번(파이썬): 쇠막대기 (0) | 2021.09.08 |
---|---|
[baekjoon] 백준 10951번(파이썬): A+B - 4 (0) | 2021.09.07 |
[baekjoon] 백준 17413번(파이썬): 단어 뒤집기 2 (0) | 2021.09.07 |
[baekjoon] 백준 10866번(파이썬): 덱 (0) | 2021.09.06 |
[baekjoon] 백준 1158번(파이썬): 요세푸스 문제 (0) | 2021.09.06 |