[Python] boj: 2231 분해합

Binsu·2021년 9월 27일
0

Algorithms

목록 보기
20/22

문제

풀이

# 분해합 입력
N = int(input())   

# 분해합 생성자를 찾기 위한 반복문(brute force)
for i in range(1, N+1):
    # 각 자리수(i)를 모두 더해줌
    num = sum((map(int, str(i))))
    
    # 분해합은 생성자와 각 자리수의 합
    sums = i + num

    # i가 오름차순으로 1씩 늘어나기 때문에,
    # 가장 처음에 분해합과 입력값이 같을 때가
    # 생성자 최소값임
    if sums == N:
        print(i)
        break
    
    # 분해합이 생성자 i와 같다면 생성자가 없는 것임
    if i == N:
        print(0)

0개의 댓글