[Baekjoon Online Judge] 풀이

[Baekjoon Online Judge] 백준 2145번: 숫자 놀이 파이썬 풀이 - 알고리즘 코딩 문제 해설 python

codeomni 2023. 2. 13. 16:08
반응형

 

안녕하세요.

이번 포스팅은 백준 온라인 저지의 2145 문제 풀이입니다.

문제 이름은 "숫자 놀이" 입니다.

 

 

문제


문제 링크는 바로 밑의 링크를 확인해주세요.

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

 

2145번: 숫자 놀이

각 줄에 숫자 N이 주어진다. N은 100,000보다 작은 양의 정수이다. 마지막 입력은 0이며, 0에 대한 결과는 출력하지 않는다.

www.acmicpc.net

 

 

풀이


1
2
3
4
5
6
7
while 1:
    n = int(input())
    if n == 0:
        break
    while n > 9:
        n = sum(map(int, list(str(n))))
    print(n)
cs

 

 

1. 0이 입력될 때까지 반복하기 때문에 while문을 통한 무한 반복문을 작성합니다.

 

2. 숫자 N을 입력받습니다.

 

3~4. 먼저, 0을 입력하면 처리하지 않고 종료하므로

if문을 통해 무한 반복문을 종료합니다.

 

5. 입력 받은 숫자 N은 10의 자릿수 이상일 경우만 처리하므로

숫자 9 이상일 경우 N이 1의 자릿수가 될 때까지 반복합니다.

 

6. 각 자리는 문자로 나누어 리스트로 변환한 후에

[ ex) 숫자 673 -> 리스트에 6, 7, 3으로 변환 ]

map()함수를 통해 다시 int형으로 변환하여 합계를 구합니다.