728x90
반응형
Bronze II
# 2231 분해합
브루트 포스
링크 : https://www.acmicpc.net/problem/2231
풀이
N = int(input())
li = []
# 출력값이 N보다는 작은 값이라는 가정하에 모든 경우의 수 확인
for i in range(N):
s = 0 # for문이 돌 때마다 s를 갱신해야 함
s += i
for j in str(i):
s += int(j)
if s == N:
li.append(i)
if li == []:
print(0)
else:
print(min(li))
- 런타임 오류가 나올 때는 문제를 다시 읽어보고 예외처리가 필요한지 확인해보자
- s=0 의 위치를 for 문 바깥에 작성해서 문제 해결하는데 어려움을 겪었다. for 문이 반복될 때마다 갱신해줘야 하는 변수들이 무엇인지 잘 살펴보도록 하자
- 리스트 공간 li가 비어있을 경우를 조건문으로 어떻게 처리해야하는지 의문스럽다
- li == [] 를 사용했을 때 test time : 0.764..
- len(li) == 0 를 사용했을 때 test time : 0.954..
- li is False 를 사용했을 때 test time : 2.056..
- not li 적용 시 2.78..
→ if not li 혹은 li is False 을 사용하도록 하자
'Algorithm Study > Python' 카테고리의 다른 글
[백준 파이썬] # 7568 덩치 (0) | 2021.12.20 |
---|---|
[백준 파이썬] # 13305 주유소 (0) | 2021.12.19 |
[백준 파이썬] # 2798 블랙잭 (0) | 2021.12.17 |
[코드업 파이썬] # 4012 석차 계산 (0) | 2021.12.17 |
[코드업 파이썬] # 3120 리모컨 (0) | 2021.12.16 |