https://www.acmicpc.net/problem/1110
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
N = int(input()) #입력받은 값을 int로 바꿈
num = N #변하는 값
count = 0 #몇 번 사이클인지
while True:
a = num//10
b = num %10
c = (a+b)%10
num = (b*10) + c
count += 1
if(num == N):
break
print(count)
|
cs |
말로 풀어서 풀이
먼저 26으로 보자면 다음수를 만드는데 필요한 수는
10의 자리 숫자 2와 1의 자리 숫자 6을 따로 봐야한다
문제는 0~99자리까지 주어진다니까 안심을 하고 두자리로 보면 되겠다.
2를 구하는 것은 26을 10으로 나눈 몫이다 (a)
6은 26을 10으로 나눈 나머지이다 (b)
(만약에 한자리 수라면 몫이 0일 것이다)
그리고 그 둘을 더해서 또 1의 자리 숫자가 필요하다
그러면 그 둘을 더해서 10으로 나눈 나머지가 바로 나온 숫자다(c)
원래 N이랑 계속 변하면서 몇번째에 N이 되는지 비교해야하기에 맨 처음 N과 같은 값을 가진
num을 N으로 선언해주고 num을 while문안에서 계속 반복을 시킨다.
그리고 한번 사이클이 돌때마다 count를 1씩 높여준다
원래 N과 num이 같아지면 break를 하고 count를 출력해준다.
정리
1. N과 num이 같아질때까지 while문을 돌린다.
2. 10의 자리 수를 구하는 것은 10으로 나눈 몫, 1의 자리 수를 구하는 것은 10으로 나눈 나머지
를 활용하여 필요한 숫자를 만든다
3. 사이클이 돌때마다 count를 1씩 높인다.
728x90
'알고리즘 > 백준 문제풀이' 카테고리의 다른 글
[백준] 4673 셀프 넘버 파이썬 풀이 (0) | 2021.06.15 |
---|---|
[백준] 4344 평균은 넘겠지 파이썬 풀이 (0) | 2021.06.15 |
[백준] 2884 알람시계 파이썬 풀이 (0) | 2021.06.15 |
[백준] 백준 문제 제출할 때 어떻게 하는지 모르는 사람~! input()이 대체 뭔데! 입력값을 어떻게 테스트 하는데! 백준 제출 하는 법 (0) | 2021.06.15 |
[백준] 2588 곱셈 파이썬 풀이 (0) | 2021.06.15 |