본문 바로가기
Algorithm

[Brute Force] 백준 2231 분해합 - Python

by jangThang 2022. 2. 7.
반응형

백준 온라인 저지

 

[ Contents ]

     

     

    1. 문제 (링크 참조)

     

    2231번: 분해합

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

    www.acmicpc.net

     

     

     

    2. 문제 풀이

    분해합: 자기 자신과 각 자릿수의 합

     M의 분해합이 N인 경우, M은 N의 생성자입니다. N의 가장 작은 생성자를 찾는 문제입니다.

     

    2022.01.16 - [Algorithm] - [Algorithm] 브루트 포스(Brute Force)는 노가다 기법?

     

    [Algorithm] 브루트 포스(Brute Force)는 노가다 기법?

    [ Contents ] 1. 브루트 포스란?  Brute(짐승 같은, 난폭한) + Force(힘, 폭력)의 합성어입니다. 무식하게 푸는 기법으로, '노가다'에 가까운 접근법입니다. 모든 경우의 수를 시험해보며 문제를 해결합니

    star7sss.tistory.com

     브루트 포스 문제입니다. 1부터 N까지 1씩 올려가며 생성자가 있는지 확인합니다.

     

     

     

    3. 코드

    N = int(input())
    res = 0 #결과값
    for i in range(1, N):
        subSum = 0 #분해합
        num = i
        #각 자릿수 더하기
        while num != 0:
            subSum += (num % 10)
            num //= 10
            
        #자기 자신과 각 자릿수 합이 N과 같아야 생성자
        if subSum+i == N:
            res = i
            break
    print(res)

     

     

     

    star가 되고나서 Tistory

    반응형

    댓글