해당 문제는 입력받은 숫자를 10의 자리와 1의 자리로 나눠서 1의자리값과 10의자리와 1의자리를 더한 값의 1의자리를 계속해서 더해나가다
처음의 숫자를 찾아내는 문제이다.
import sys
count = 0
n = num = int(sys.stdin.readline())
while(True):
ten = n // 10
one = n % 10
total = ten + one
count += 1
n = int(str(n % 10) + str(total % 10))
if (num == n):
break
print(count)
우선 입력 받은 값을 두개의 변수에 할당한다.
하나는 자릿수로 나눠담을 변수고, 하나는 끝에 찾아낼 변수
그다음 while문 내부에
10의자리를 담을 ten 에는 n을 10으로 나눠 나오는 정수 값을 담고
1의 자리를 담는 one에는 10으로 나눠 남은 나머지 를 담는다
26을 예로들면
ten + one 은 새로 만들어진 수(total) 가 되고
n은 다시 기존 n의 1의자리 수와 total의 1의 자리수를 더한 값을 n에 담는다
이런 식으로 진행하다 n과 num이 다시 같은 값을 가지게 되면
break 로 빠져나오며
count 값을 출력
'알고리즘' 카테고리의 다른 글
[백준 11047] 파이썬 동전 0 (1) | 2021.03.07 |
---|---|
[백준 파이썬 1002] 백준 python 터렛 1002번 (0) | 2020.11.15 |
백준 10952번 파이썬 (python) : A+B - 4 (0) | 2020.08.14 |
백준 10952번 파이썬 (python) : A+B - 5 (0) | 2020.08.14 |
[백준 2750] 파이썬 삽입정렬 (0) | 2020.02.12 |
댓글