개발 연습장/백준 문제풀이

[파이썬, Python] 백준 2231: 분해합

LooanCheong 2023. 1. 18. 11:27
반응형

문제

https://www.acmicpc.net/problem/2231

 

2231번: 분해합

어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이

www.acmicpc.net

코드

import sys
input = sys.stdin.readline

n = int(input())
ans = 0

for i in range(1, n+1):
    num = i + sum(list(map(int,str(i))))
    if num == n:
        ans = i
        break
print(ans)

설명

수를 입력받고 그 수까지 반복하며 생성자를 찾아낸다.

i = 123인 경우,
123 + 1 + 2 + 3

i에다 i의 각 자리수를 더해서 특정 수를 생성하고 이 수와 n이 일치한다면 반복문을 탈출하고 답을 출력한다.
(가장 작은 수를 찾는 경우이므로)

반응형