본문 바로가기

개발/algorithm

[백준 1769번] 3의 배수 - python

문제 링크

https://www.acmicpc.net/problem/1769

 

1769번: 3의 배수

문제가 잘 풀리지 않을 때, 문제를 바라보는 시각을 조금만 다르게 가지면 문제가 쉽게 풀리는 경험을 종종 해 보았을 것이다. 여러 가지 방법이 있지만 그 중 하나로 우리가 풀고 싶은 문제를

www.acmicpc.net

 

풀이

- 아래 코드 시간 초과 

- int형으로 입력을 받은 뒤 str로 바꿔서 for문제 넣어서 그렇다고 한다. 

# 시간 초과 
def sol(n,cnt):
  if n < 10  :
    print(cnt)
    if n % 3 == 0 :
      print("YES")
    else:
      print("NO")
    return 
  s = 0
  for i in str(n):
    s += int(i)
  sol(s,cnt+1)
  
n = int(input())
sol(n,0)

- str로 입력받고 이를 매개변수로 함수에 전달해서 통과하였다. 

def sol(n,cnt):
  if len(n) == 1 :
    print(cnt)
    if int(n) % 3 == 0 :
      print("YES")
    else:
      print("NO")
    return 
  s = 0
  # 자릿수 합
  for i in n:
    s += int(i)
  sol(str(s),cnt+1)
  
n = input()
sol(n,0)