분해합(백준)

링크텍스트

문제 이해

어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 된다. 따라서 245는 256의 생성자가 된다. 물론, 어떤 자연수의 경우에는 생성자가 없을 수도 있다. 반대로, 생성자가 여러 개인 자연수도 있을 수 있다.

자연수 N이 주어졌을 때, N의 가장 작은 생성자를 구해내는 프로그램을 작성하시오.

나만의 이해

처음에는 permutation을 이용하려고 했는데 그러면 자릿수가 늘어나면 계산량이 너무 많아 진다. 그래서 그냥 무식하게 풀었다.

Python

import sys
taret = int(input())
res =0
for i in range(taret):
    bh=list(map(int,list(str(i))))
    sh = i
    if sum(bh)+ sh == taret:
        res =sh
        break

print(res)   

그냥 단순하게 풀자..

좋은 웹페이지 즐겨찾기