TL;DR
- 구현(Implementation)
- 문자열(String)
문제 요약
1. 주어진 자연수 X가 3의 배수인지 판정하기 위해서 제안된 "다른 문제로 바꾸어 풀기" 방법을 사용하려고 한다.
2. 다른 문제로 바꾸어 풀기는 다음과 같다.
1. X의 각 자릿수를 더한 수 Y를 만든다.
2. Y가 3의 배수인지 판별한다.
3. 알고 있는 3의 배수가 한 자리 수밖에 없다고 가정하면 Y가 한 자리 수가 나올 때 까지 다른 문제로 바꾸어 풀기를 진행해야 한다. 그 때의 문제 변환을 반복한 횟수와 결과의 3의 배수인지 판별하는 프로그램을 작성하라.
- X가 한 자리 수가 될 때까지 각 자릿수를 더한다. 한 자리수가 됬을 때까지 진행된 횟수와 그렇게 만들어진 한 자리 수가 3의 배수인지 판별하는 프로그램을 작성하면 된다.
- 문제에 나와 있는 규칙을 말 그대로 구현하면 된다.
입출력 형태
예시 1 :: 힌트와 같이 한 자리수인 1이 될때까지 과정을 3번 반복한다. 1은 3의 배수가 아니므로 NO를 출력한다.
풀이
import sys
INPUT = sys.stdin.readline
X = INPUT()[:-1]
count = 0
while len(X) > 1:
X = str(sum(map(int, X)))
count += 1
X = int(X)
print(count)
if X % 3 == 0:
print('YES')
else:
print('NO')
while문 내에서 X가 한 자리 수가 될 때까지 각 자릿수의 합을 X로 갱신한다. 한 번 수행될 때마다 count를 증가시킨다.
while문의 실행이 종료되면 X는 한 자리 숫자가 되어 있다. 이 X가 3의 배수인지 판별하여 YES 또는 NO를 출력하면 된다.
반응형
'개발 > Algorithm' 카테고리의 다른 글
[백준] 소수 단어(python) (0) | 2021.11.08 |
---|---|
[프로그래머스] lv2-다리를 지나는 트럭(python) (0) | 2021.11.07 |
[백준] 방 번호(python) (0) | 2021.11.06 |
[백준] 단어 나누기(python) (0) | 2021.11.05 |
[백준] 무한이진트리(python) (0) | 2021.11.04 |