개미의 개열시미 프로그래밍

[알고리즘] 백준2231 분해합 - 파이썬 본문

알고리즘/그리디 & 구현

[알고리즘] 백준2231 분해합 - 파이썬

YunHyeok 2021. 7. 30. 18:11
728x90
반응형

단계별로 풀어보기 '브루트 포스'의 두번째 문제입니다. 아직까지는 쉽게 느껴졌습니다. 

 

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

 

2231번: 분해합

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

www.acmicpc.net

 

 

[풀이코드]

n = int(input())

for number in range(1, n+1):
    n_list = list(map(int, str(number))) # 198 -> [1, 9, 8]
    result = number + sum(n_list) # 198 + sum([1, 9, 8])
    if n == result:
        print(number)
        break
    if n == number: # 생성자가 없는 경우에는 0을 출력한다.
        print(0)

 

[문제풀이]

마지막 조건문을 빼먹어서 틀렸던 문제.. 모든 경우를 생각해야 하는 브루트 포스 단계였고 리스트를 활용해서 안의 요소들을 다 더했고 처음 입력받은 숫자와 비교해서 일치하면 출력하도록 구현하였습니다. 

728x90
반응형
Comments