
출처:
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 i in range(1, n+1):
rlt = sum((map(int, str(i))))
tot_rlt = rlt + i
if tot_rlt == n :
print(i)
break
if i == n :
print(0)
가장 중요한 부분은
rlt = sum((map(int, str(i))) 이 부분이다. str(i)를 int로 바꿔서 map으로 저장 한다음 모두 합해준다는 뜻이다.
이렇게 하면 다음 부터는 너무 수월하다.
'코딩테스트 > 기초' 카테고리의 다른 글
| 백준 2798 블랙잭 - python (0) | 2022.01.15 |
|---|---|
| 백준 10872 팩토리얼 - python (0) | 2022.01.12 |
| 백준 터렛 1002 - python (0) | 2022.01.11 |
| 백준 3053 택시기하학 - python (0) | 2022.01.11 |
| 백준 4153 직각삼각형 - python (0) | 2022.01.11 |