본문 바로가기
[Baekjoon Online Judge] 풀이

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

by codeomni 2023. 2. 13.
반응형

 

안녕하세요.

이번 포스팅은 백준 온라인 저지의 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형으로 변환하여 합계를 구합니다.

댓글