Hello Computer Vision

백준 알고리즘 2231번 [분해합] 파이썬 본문

백준알고리즘

백준 알고리즘 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)