본문 바로가기
*Algorithm/Baekjoon

[Baekjoon] 백준 1110번 더하기 사이클(파이썬 Python)

by codinguser 2021. 1. 18.

[Baekjoon] 백준 1110번 더하기 사이클(파이썬 Python)
© 2020 All Rights Reserved.  주식회사 스타트링크

 

[Baekjoon] 백준 1110번 더하기 사이클

(파이썬 Python)

 

* 문제출처 : 백준 알고리즘 문제

 

 

 

1) 문제


백준 1110번 더하기 사이클 파이썬

 

1110번: 더하기 사이클

0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음,

www.acmicpc.net

 

 

 

 

2) 코드


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
= 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()이 기본적으로 담는 자료형은 문자열

 

* 가장 직관적으로 푸는것이 가장 아름다운 답(개인 취향)

 

 

 

 

 

 

 

 

 

댓글