풀이 각 자릿수의 숫자들을 더하여 한자리수가 나올 때 그 숫자가 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 BOJ 1769 - 3의 배수