자료구조 및 알고리즘/백준

[python] 2231. 분해합

viamemine 2023. 7. 25. 14:52
728x90
반응형

 

 

  • 문제


 

  • 잘못된 풀이 
N = int(input())
num_list = list()

for i in range(1, N+1):
    num = [int(i) for i in str(i)]
    # print(num, sum(num)+i)
    # print(i)
    if i>=9 and sum(num)+i == N:
        num_list.append(i)
print(min(num_list))

 

해당 문제를 잘 풀었다고 생각했는데, runtime 에러가 나왔다.

data type의 문제라고 생각했는데 생성자가 0일 경우의 처리를 하지 않았다.

 

문제점이 무엇인지 바로 파악했기 때문에, 쉽게 문제를 해결할 수 있었다.

 

 

 

  • 올바른 풀이
N = int(input())

for i in range(1, N+1):
    num = [int(i) for i in str(i)]
    
    if sum(num)+i == N: # 발견한 수 중에 작은 수 
        print(i) 
        break
    elif i == N:
        print(0)

 

다음과 같이 생성자가 없을 때의 처리를 해주었다. 

728x90

'자료구조 및 알고리즘 > 백준' 카테고리의 다른 글

[python] 1436. 영화감독 숌  (0) 2023.07.27
[python] 19532. 수학은 비대면강의입니다.  (0) 2023.07.26
[python] 2798. 블랙잭  (0) 2023.07.25
[python] 1149. RGB거리  (0) 2023.03.02
[python] 1912. 연속합  (0) 2023.03.01