문제
알고리즘
- 반복문을 통해 입력받은 수가 한 자리 수가 될 때까지 문제 변환 과정을 수행한다.
- 문제 변환 과정은 sum() 함수를 통해 리스트의 모든 수를 더하고 반복문을 통해 더한 수를 자릿수에 나눠 리스트에 다시 담는다. 담은 리스트는 다시 word에 넣어 이 과정을 반복한다.
- 문제 변환 과정이 이루어질 때마다 카운트한다.
- 입력받은 수가 한 자리 수가 됐다면 문제 변환 과정을 카운트한 수를 출력하고 한 자리 수가 3의 배수인지 확인 후 조건에 맞게 출력한다.
코드
import sys
word = list(map(int, sys.stdin.readline().strip()))
cnt = 0 # 문제 변환 과정
# 반복문을 통해 한 자리 수가 될 때까지 문제 변환 과정을 수행
while len(word) > 1:
cnt += 1 # 문제 변환 과정 카운트
# 뮨제 변환 과정
temp = []
word = sum(word) # 각 리스트의 수를 더한다.
# 반복문을 통해 더한 수를 자릿수에 나눠 리스트에 담는다.
for i in str(word):
temp.append(int(i))
# 리스트를 word에 다시 넣는다.
word = temp
# 문제 변환 과정 출력
print(cnt)
# 한 자리 수가 3의 배수인지 확인
if word[0] % 3 == 0:
print("YES")
else:
print("NO")
github
'CodingTest > Baekjoon' 카테고리의 다른 글
[baekjoon] 백준 1755번(파이썬): 숫자놀이 (0) | 2022.01.08 |
---|---|
[baekjoon] 백준 1969번(파이썬): DNA (0) | 2022.01.07 |
[baekjoon] 백준 14426번(파이썬): 접두사 찾기 (0) | 2022.01.05 |
[baekjoon] 백준 1254번(파이썬): 팰린드롬 만들기 (0) | 2022.01.04 |
[baekjoon] 백준 10430번(파이썬): 나머지 (0) | 2022.01.03 |