백준알고리즘
백준 알고리즘 2231번 [분해합] 파이썬
지웅쓰
2023. 4. 20. 18:07
https://www.acmicpc.net/problem/2231
2231번: 분해합
어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이
www.acmicpc.net
처음에는 input을 str으로 받고 분해하는 작업을 번거롭게 했었는데 알고보니 str을 리스트로 받아주면 하나하나 알아서 분해되기 때문에 번거로운 작업을 할 필요 없다. 반복문 마지막까지 갈 경우 없는 것이므로 0을 내뱉는다.
n = int(input())
answer = 0
generatr = 0
for generator in range(1, n + 1):
list_ = list(map(int, str(generator)))
answer = sum(list_) + generator
if n == answer:
print(generator)
break
elif generator == n:
print(0)