티스토리 뷰

반응형

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

 

2231번: 분해합

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

www.acmicpc.net

 


⊙ 문제

⊙ 입력

⊙ 출력

⊙ 예제 입출력

⊙ 알고리즘 분류

  • 브루트포스 알고리즘

 


 

⊙ 문제 접근 과정

 

사실 브론즈 문제 치고 좀 어려웠다.

list(map(int, str(i)))를 생각하기가 어려웠다.

 

파이썬에선 str함수만 생각한다면 쉽긴 하다.

 

본인 숫자와 str함수를 이용해 각 자리수의 합을 N과 비교하여 값을 찾아가면 된다.

브루트포스 알고리즘이니 범위는 1부터 N까지

 


 

⊙ 문제 풀이

 

N = int(input())
result = 0

for i in range(1, N+1):
    temp = list(map(int, str(i)))
    result = i + sum(temp)
    if result == N:
        print(i)
        break

    if i == N:
        print(0)

 


⊙ 결과

 


⊙ 마무리

 

 

브론즈 자주 풀어야겠네..

 

 

좋아요는 로그인하지 않아도 누를 수 있습니다!

728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함