반응형
문제
초등학생인 도겸이는 숫자를 좋아한다. 어느 날 도겸이는 숫자 책을 보다가 간단한 놀이를 하나 생각해냈다. 숫자 놀이의 규칙은 다음과 같다.
- 주어진 숫자의 각 자릿수를 더한다.
- 결과가 한 자릿수가 될 때 까지 규칙1을 반복한다.
예를들어, 숫자 673에 규칙을 적용해보면 결과는 7이 된다 ; 6 + 7 + 3 = 16, 1 + 6 = 7
도겸이는 당신과 함께 숫자놀이를 하고싶어한다. 도겸이가 주는 숫자들을 풀어보자.
입력
각 줄에 숫자 N이 주어진다. N은 100,000보다 작은 양의 정수이다. 마지막 입력은 0이며, 0에 대한 결과는 출력하지 않는다.
출력
한 줄에 하나씩 한 자릿수 결과를 출력한다.
예제 입력67351 1000 99 0 |
예제 출력76 1 9 |
풀이
숫자를 한 자리수가 될 때까지 자리별로 더하는 문제이다.
반복문 사용, 정수형을 스트링으로, 스트링을 리스트로 변환하는 방법을 숙지하고 있어야 풀 수 있다.
while(True):
n = int(input())
if n == 0:
break
while(n>9):
n = sum(map(int,list(str(n))))
# n이 673일 때, 스트링 변환 후 리스트에 담으면 ["6","7","3"] 꼴이 된다.
# map은 이같은 배열 안의 스트링을 int형으로 편하게 변환시켜 주는 기능을 한다.
print(n)
반응형
'알고리즘 연습 > 구현, 문자열' 카테고리의 다른 글
[🥉1 / 백준 9093 / 파이썬] 단어 뒤집기 (0) | 2021.07.24 |
---|---|
[🥉1 / 백준 11719 / 파이썬] 그대로 출력하기 2 (0) | 2021.07.23 |
[🥉1 / 백준 1453 / 파이썬] 피시방 알바 (0) | 2021.07.20 |
[🥉1 / 백준 3181 / 파이썬] 줄임말 만들기 (0) | 2021.07.19 |
[🥈4 / 백준 17219 / 파이썬] 비밀번호 찾기 (0) | 2021.07.13 |