250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- html
- count
- Len
- map
- 파이썬
- pcce 기출문제
- GIT
- 데이터
- 파이썬 몫
- 프로젝트
- Django
- 백준
- 설계
- SQL 고득점 Kit
- Join
- 아이엠어바텐더
- 코딩테스트 연습
- 파이썬 슬라이싱
- 단어 공부
- List Comprehension
- date_format
- where
- css
- ORDER BY
- Python3
- sql
- python
- 프로그래머스
- 슬라이싱
- YOLOv5
Archives
- Today
- Total
nan + nan = 2nan
[백준] [Python3] #1110. 더하기 사이클 본문
728x90
코드 입력
N = int(input())
count = 0
cf = N
while N < 100:
T = (N // 10) + (N % 10)
# 8 2 6
New = (N % 10) * 10 + (T % 10)
# 68 6 X 10 + 8
count += 1
N = New
if New == cf:
break
print(count)
얼른 풀고 맥주 먹고 잘라 그랬는데 1시간을 소모한 문제..
문제를 읽고 어느정도 로직은 머릿 속에 그려졌지만,
formatting과 try / except, 정말 여러가지 방법을 사용해보았지만
무한반복에 빠지거나 머리가 빠지거나 둘 중 하나
결국 참조를 해보았다.
count와 N에 동등한 값을 갖는 새로운 변수를 생성하는 것이 답이었다.
26 이라면, 2 + 6 = 8 이고 다음 수가 68로 만들어지는 과정을 만들기 위해,
N을 10으로 나눈 몫과 나머지 값을 이용하는 로직.
그리고 68을 만들기 위해 나머지 값에 10을 곱하고, T가 10이 넘을 수도 있으니 일의 자릿 수만 빠져나오게 하기 위해
10으로 나누어 준 나머지 값을 사용.
이 루프를 돌릴 때마다 count가 1씩 늘어나게 함수를 생성하고,
사실
N = New
if New == cf:
이 부분에서 if 문 전에 왜 N = New라는 식을 생성한지는 이해가 되지 않는다..
기회가 닿는다면 질문해봐야겠다
오늘 하루도 힘들었따
출처 : 백준 Online Judge
https://www.acmicpc.net/problem/1110
'Python > 백준 알고리즘' 카테고리의 다른 글
[백준] [Python3] #2562. 최댓값 (0) | 2021.08.11 |
---|---|
[백준] [Python3] #10818. 최소, 최대 (0) | 2021.08.11 |
[백준] [Python3] #10951. A + B - 4 (0) | 2021.08.03 |
[백준] [Python3] #10952. A + B - 5 (0) | 2021.08.03 |
[백준] [Python3] #10871. X보다 작은 수 (0) | 2021.08.03 |
Comments