[Baekjoon] 백준 1110번 더하기 사이클
(파이썬 Python)
* 문제출처 : 백준 알고리즘 문제
1) 문제
2) 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
N = input()
if(int(N) < 10):
N = '0' + N
check_value = int(N)
cnt = 0
while True:
add_value = int(N[0]) + int(N[1])
cnt += 1
N = N[-1] + str(add_value)[-1]
if(check_value == int(N)):
break
print(cnt)
|
cs |
3) 풀이
* 문제에서 주어진 순서를 직관적으로 풀어나가면 된다.
1. 우선 input()을 받는다. input()은 기본적으로 입력받은 값은 문자열이 된다.
2. 그렇기에 int로 받고 정수형 10보다 작으면 '0'을 붙여 준다.
3. 반복을 돌려줘야 하는데, 종료조건이 원래의 수로 돌아 올 때 이다.
문제에서 묻는바는 원래의 수로 돌아 왔을 때 몇 사이클을 돌았는지 횟수(cnt)를 묻는다.
cnt = 0
ㄴ while True:
break
를 이용해야 겠다는 생각
4. while True:
안에서의 코드는 새로운 변수를 선언하고 각 자리수의 합의 값으로 선언한다.
더하는 그 순간 횟수가 올라가기에 cnt += 1
5. 주어진 수의 가장 오른쪽 자리 수와 앞에서 구한 합의 가장 오른쪽 자리 수를 이어 붙이면 새로운 수를 만들 수 있다.
N = N[-1] + str(add_value][-1]
6. 마지막으로 일치 할 때 반복문 탈출
4) 정리 노트
* 자료형의 중요성
: input()이 기본적으로 담는 자료형은 문자열
* 가장 직관적으로 푸는것이 가장 아름다운 답(개인 취향)
'*Algorithm > Baekjoon' 카테고리의 다른 글
[Baekjoon] 백준 2562번 최댓값(파이썬 Python) (0) | 2021.08.29 |
---|---|
[Baekjoon] 백준 10951번 A+B - 4(파이썬 Python) (0) | 2021.01.13 |
[Baekjoon] 백준 10952번 A+B - 5(파이썬 Python) (0) | 2021.01.13 |
[Baekjoon] 백준 2884번 알람 시계(파이썬 Python) (0) | 2021.01.12 |
[Baekjoon] 백준 2588번 곱셈(파이썬 Python) (0) | 2021.01.11 |
댓글