CodingTest/Baekjoon

[baekjoon] 백준 1769번(파이썬): 3의 배수

JunJangE 2022. 1. 6. 00:41

문제

 

1769번: 3의 배수

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

www.acmicpc.net

알고리즘

- 반복문을 통해 입력받은 수가 한 자리 수가 될 때까지 문제 변환 과정을 수행한다.

- 문제 변환 과정은 sum() 함수를 통해 리스트의 모든 수를 더하고 반복문을 통해 더한 수를 자릿수에 나눠 리스트에 다시 담는다. 담은 리스트는 다시 word에 넣어 이 과정을 반복한다.

- 문제 변환 과정이 이루어질 때마다 카운트한다.

- 입력받은 수가 한 자리 수가 됐다면 문제 변환 과정을 카운트한 수를 출력하고 한 자리 수가 3의 배수인지 확인 후 조건에 맞게 출력한다.

코드

import sys


word = list(map(int, sys.stdin.readline().strip()))
cnt = 0 # 문제 변환 과정

# 반복문을 통해 한 자리 수가 될 때까지 문제 변환 과정을 수행
while len(word) > 1:
    cnt += 1 # 문제 변환 과정 카운트

    # 뮨제 변환 과정
    temp = []
    word = sum(word) # 각 리스트의 수를 더한다.
    # 반복문을 통해 더한 수를 자릿수에 나눠 리스트에 담는다.
    for i in str(word):
        temp.append(int(i))

    # 리스트를 word에 다시 넣는다.
    word = temp

# 문제 변환 과정 출력
print(cnt)

# 한 자리 수가 3의 배수인지 확인
if word[0] % 3 == 0:
    print("YES")
else:
    print("NO")

github

 

GitHub - junjange/CodingTest: 내가 푼 코딩 테스트 문제와 해결법

내가 푼 코딩 테스트 문제와 해결법. Contribute to junjange/CodingTest development by creating an account on GitHub.

github.com