[Algorithm] BOJ_2231 분해합 파이썬

BruteForceA·2022년 1월 7일
1

문제

풀이 및 코드

풀이

이 문제는 완전 탐색으로 풀었다.
입력되는 N값에 대한 생성자중 가장 작은 생성자를 구해야 한다. 예제를 보자.

입력
216
출력
198

216에서 자기자신 과 각 자리수를 더한 값이 같은 수를 출력 해야한다. 198 + 1 + 9 + 8 = 216

코드


N=int(input())
m=0
for i in range(1, N+1): #1부터 N 까지 훑는다.
    A=list(map(int,str(i))) # 각 자리수를 배열로 저장한다. 
    
    m=i+sum(A)  # 자기자신과 배열에 저장된 각 자리수의 합을 구한다.
    if m ==N: #자리수와 자신의 합이 N과 같으면 탈출하고 출력한다. 
        break

    if i==N:
        i=0
print(i)

출처

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

0개의 댓글