본문 바로가기
알고리즘/백준 solved.ac PS

[백준][solved.ac][Silver 5][Python] 1769번 : 3의 배수

by 빛밤하늘 2021. 5. 30.
반응형

밑의 링크는 백준에서의 문제 링크입니다.

 

1769번: 3의 배수

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

www.acmicpc.net

 

 

 

 

 

 

 

 

파이썬 코드와 결과입니다.

# 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

결과

 

맞았습니다 결과를 보고 나서 문제의 카테고리를 확인해보니 재귀를 의도한 문제였습니다.

다음 번에 재귀적으로 한 번 풀어보고 포스팅해봐야겠습니다.

 

 

 

※ 궁금한 부분, 이상한 점 및 오타는 댓글에 부탁드립니다.

※ 더 효율적이고 빠른 정답을 환영합니다.

반응형

댓글