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

def divnum(n):
print_num = 0
for i in range(1, n+1):
div_num = list(map(int, str(i)))
sum_num = i + sum(div_num)
if(sum_num == n):
print_num = i
break
return print_num
N = int(input())
print(divnum(N))
위 문제는 브루트 포스 알고리즘으로
brute: 무식한, force: 힘
즉 완전 탐색 알고리즘을 사용하여, 모든 경우의 수를 구하여 그에 해당하는 값을 출력하는 형태이다.
그래서 나는 숫자를 입력받은후에 , 1부터 입력N 값 까지의 모든 경우의 수마다, 자리수를 나누고 해당 숫자를 더하는 형식을 사용하여 그 숫자와 N이 동일할때 생성자를 출력하는 방법으로 코딩해보았다.
| 백준[7568번]:: 덩치(Python,파이썬) (0) | 2020.10.07 |
|---|---|
| 백준[2798번]:: 블랙잭(Python,파이썬) (0) | 2020.10.04 |
| 백준[10872번]:: 팩토리얼(Python,파이썬) (1) | 2020.09.24 |
| 백준[1316번]:: 그룹 단어 체커(Python,파이썬) (1) | 2020.09.24 |
| 백준[2941번]:: 크로아티아(Python,파이썬) (2) | 2020.09.22 |
댓글 영역