[백준/Python] 2231 분해합

재활용병·2024년 1월 12일
0

코딩 테스트

목록 보기
56/157

[백준/Python] 2231 분해합


풀이 코드 및 설명

import sys
n = int(sys.stdin.readline())
result = 0
for i in range(1, n+1):
    nums = sum((map(int, str(i))))
    result = i + nums
    if result == n:
        print(i)
        break
    if i == n: 
        print(0)

모든 수에 대해서 생성자가 되는 경우를 확인하면 된다.
생성자는 n보다 클 경우는 없기에 1 부터 n 까지 반복하면 된다.

먼저 선택된 i 에 대해 각 자리수를 더해준다.
문자열로 변환하고 map 함수, sum 함수를 이용하여 구한다.
선택된 i 와 위 결과를 더한 값을 n과 비교해주면 된다.
문제에 나와있는 조건 중 N의 가장 작은 생성자를 구하는 것이기에 제일 먼저 나온 값이 정답이 되기에 답을 출력하고 반복문을 break를 통해 나온다.
만약 i 가 n 이 된다면 이는 생성자가 없다는 의미로 0을 출력하면 된다.

profile
코딩 말고 개발

0개의 댓글

관련 채용 정보