[백준] 1769 : 3의 배수

문제

시간초과 풀이

import sys

n = sys.stdin.readline()
answer = 0
count = 0

def sol(n):
    global answer, count
    if len(n) == 1 :
        if n in [3, 6, 9]:
            answer = "YES"
        else:
            answer = "NO"
        return
    
    count += 1
    a = 0 # 각 자리 숫자의 합
    for i in range(len(n)):
        a += int(n[i])
    
    sol(a)

sol(n)
print(count)
print(answer)

정답 풀이

input()을 int가 아니라 String 타입으로 받았을 때 시간초과가 발생하지 않음!

import sys

n = sys.stdin.readline().strip()
answer = 0
count = 0

def sol(n):
    global answer, count
    if len(n) == 1 :
        if n in ['3', '6', '9']:
            answer = "YES"
        else:
            answer = "NO"
        return
    
    count += 1
    a = 0 # 각 자리 숫자의 합
    for i in range(len(n)):
        a += int(n[i])
    
    sol(str(a))

sol(n)
print(count)
print(answer)

좋은 웹페이지 즐겨찾기