[BOJ]231:分解と



🔒 例

>> 216

198

🔧 に答える

1. n = int(sys.stdin.readline().rstrip())
2. 245의 분해합 = 256(=245+2+4+5) <-> 256의 생성자 = 245
3. 브루트포스:: 다중포문 예상
	3.1 가장 작은 생성자를 구하기 위해 모든 생성자 저장
    3.2 예상 생성자(tmp)가 음수일 경우, 제외
    3.3 생성자가 없는 경우, 예외처리

🔑 答案用紙

import sys

n = int(sys.stdin.readline().rstrip())
results = []
for i in range(1, n):
    tmp = n - i
    if tmp < 0:
        break

    s = str(tmp)
    total = tmp
    for j in range(len(s)):
        total += int(s[j])

    if n == total:
        results.append(tmp)

if len(results) == 0:
    print(0)
else:
    print(min(results))

💡 コンセプト