2231: 분해합
최종답안
### 문제를 똑바로 읽자 생성자가 없을 경우 0 출력
n = int(input())
answer = []
for i in range(n, 0,-1) :
nums = list(str(i))
nums = list(map(int, nums)) # 각 자리 수의 숫자 리스트
result = sum(nums) + i
if result == n :
answer.append(i)
else :
continue
if answer != [] :
print(min(answer))
else :
print(0)
시행착오
- 런타임 에러 (Value Error), 확인해보니 한자리 숫자인 경우 오류 발생, range 범위 변경
- 생성자가 존재하지 않을 경우 0을 출력 (문제를 유심히 읽자.)
n = int(input())
answer = []
for i in range(n, 1,-1) :
nums = list(str(i))
nums = list(map(int, nums)) # 각 자리 수의 숫자 리스트
result = sum(nums) + i
if result == n :
answer.append(i)
else :
continue
print(min(answer))
input인 n의 값을 9로 넣었을때
range(9, 1, -1) 는 9, 8, 7, 6, 5, 4, 3, 2
따라서 range(n, 0, -1) 로 변경
위 예시에서 1까지 출력하도록 설정
### 문제를 똑바로 읽자 생성자가 없을 경우 0 출력
n = int(input())
answer = []
for i in range(n, 0,-1) :
nums = list(str(i))
nums = list(map(int, nums)) # 각 자리 수의 숫자 리스트
result = sum(nums) + i
if result == n :
answer.append(i)
else :
continue
if answer != [] :
print(min(answer))
else :
print(0)
answer에 요소가 들어가지 않은 경우는 생성자가 없는 경우를 말함 따라서 들어있지 않은 경우 0을 출력하도록
``` else : ; print(0) ``` 추가
'매일매일 (Everyday)' 카테고리의 다른 글
[BOJ] 재귀 - 하노이 탑 이동 순서 - Python (0) | 2021.12.29 |
---|---|
[BOJ] 해시 - 베스트셀러 - Python (0) | 2021.12.27 |
[BOJ] 이분 탐색 - 수찾기 - Python (0) | 2021.12.17 |
[BOJ] 분할정복 - 색종이 만들기 - Python (0) | 2021.12.17 |
[BOJ] 백트래킹 - N과 M (1) 문제 - Python (0) | 2021.12.17 |