풀이


각 자릿수의 숫자들을 더하여 한자리수가 나올 때 그 숫자가 3의 배수라면 기존 숫자도 3의 배수가 된다는 문제다.

while문을 활용하여 값이 한자리수가 될 때 까지 각 자리수들을 더해주는 연산을 수행한다.

한자리수에 도달한 후 그 수가 3의 배수라면 “YES” 를 출력하며 각 연산이 수행될 때 마다 저장해 둔 ans 값을 출력해준다.

소스코드


# 3의 배수
import sys
input = sys.stdin.readline
 
num = input().rstrip()
ans = 0
isTrue = False
 
while True:
    temp = 0
 
    if len(num) > 1:
        for n in num:
            temp += int(n)
        ans += 1
        num = str(temp)
    else:
        if int(num)%3 == 0:
            isTrue = True
        break
 
print(ans)
print("YES" if isTrue else "NO")

References