목차
TIL
- 백준 1110
TIL
오늘 자소서 준비와 노션 페이지에 정리를 하느라 문제에 투자하는 시간이 적었다. 그러나 여태까지 공부했던 내용을 readme 파일 형태로 깃허브를 설명하거나 해당 파일을 통해 학습했었던 것을 정리하였다. 깃허브 꽃단장을 보니 너무 뿌듯하다. 공부했었던 것을 정리하면서 Spring Posting을 둘러보았는데, 정말.. 열심히했었던 것이 다시끔 느껴지면서, 그 때 했었던 열정으로 다시끔 불타는 것같다. 꾸준히 열심히 해보자~!
백준 1110
https://www.acmicpc.net/problem/1110
처음엔 재귀적으로 접근하려고 했다가 탈출 조건을 지정하기 까다로웠다. 그래서 while문을 돌려서 재귀적으로 접근할 수 있게 했다. _new함수는 새로운 숫자와 기존의 숫자와의 관계를 바탕으로 새롭게 숫자를 도출해내는 함수이다. while문을 보게 되면 탈출 조건이 될때까지 이 함수를 반복적으로 사용하게 구현한 것을 볼 수 있다. while문 안에 조건이 들어맞게 하기위해(input_num의 범위는 0~99) num을 -1로 하여 무조건 while문안에 들 수 있게 하였다. 그리고 초기 설정값이 cnt = 0 으로 설정하였기 때문에 while문 안의 if문은 무조건 맞게 되고 한번만 조건이 만족하게 된다. 아래에 cnt += 1이 있기 때문!
num = _new(num) 이 줄이 while문을 돌며 마치 재귀적으로 호출되는 역할을 한다. 그리고 _input_num != num 조건을 계속 비교하게 된다!! 이런식으로 문제를 해결했다.
_input_num = int(input())
cnt = 0
new_num = 0
# new_num = 10 * (num % 10) + (int(num / 10) + int(num % 10)) % 10
def _new(nb):
_new_nb = 10 * (nb % 10) + (int(nb / 10) + int(nb % 10)) % 10
return _new_nb
num = -1
while _input_num != num:
if cnt == 0:
num = _input_num
num = _new(num)
cnt += 1
print(cnt)
문제 풀이 시간 24분 32초
'Today I Learned' 카테고리의 다른 글
[TIL] 파이썬 알고리즘 문제풀이 강의 시작 / Sec.01-1~2, Sec.02-1 K번째 약수, 백준 10872 팩토리얼 [21-11-02] (0) | 2021.11.02 |
---|---|
[TIL] 백준 15552, 프로그래머스 12935 [21-11-01] (0) | 2021.11.01 |
[TIL] 백준 1316, 프로그래머스 12917 [21-10-30] (0) | 2021.10.30 |
[TIL] 백준 2576, 백준 11021 [21-10-29] (0) | 2021.10.29 |
[TIL] 백준 11943, 백준 10101, 백준 14681 [21-10-28] (0) | 2021.10.28 |