반응형
밑의 링크는 백준에서의 문제 링크입니다.
파이썬 코드와 결과입니다.
# readline을 사용하기 위해 import합니다.
from sys import stdin
# 첫째 줄에 큰 자연수 X를 입력합니다.
# 1,000,000자리 이하의 수입니다.
# 입력한 X를 각 자리수의 숫자들을 정수형으로 변환하고 리스트 변수로 만들어줍니다.
X = list(map(int, list(stdin.readline().rstrip())))
# 문제 변환의 과정 횟수를 저장할 변수를 선언합니다.
phase = 0
# 한 자리수로 될 때가지 문제 변환을 반복합니다.
while True:
# 변환된 X의 길이가 1이라면
if len(X) == 1:
# 문제 변환의 과정 횟수를 출력합니다.
print(phase)
# X가 3, 6, 9 중 하나라면
if int(X[0]) in [3, 6, 9]:
# YES를 출력하고 반복문을 탈출합니다.
print("YES")
break
# X가 3, 6, 9 중 하나가 아니라면
else:
# NO를 출력하고 반복문을 탈출합니다.
print("NO")
break
# X에 문젠 변환의 과정을 거칩니다.
# 각 자리수의 숫자인 리스트 변수인 X의 합을 구하고
# 그 결과의 각 자리수의 숫자를 또 리스트 변수로 만들어줍니다.
X = list(map(int, list(str(sum(X)))))
# 문제 변환의 과정 횟수에 1을 더해줍니다.
phase += 1
맞았습니다 결과를 보고 나서 문제의 카테고리를 확인해보니 재귀를 의도한 문제였습니다.
다음 번에 재귀적으로 한 번 풀어보고 포스팅해봐야겠습니다.
※ 궁금한 부분, 이상한 점 및 오타는 댓글에 부탁드립니다.
※ 더 효율적이고 빠른 정답을 환영합니다.
반응형
댓글