#문제
2231번: 분해합
어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이
www.acmicpc.net
#풀이 & 학습한 내용
"모든 경우를 시도하여 N의 생성자를 구하는 문제"입니다. 이때 각 자릿수의 합을 아래 코드의 6번 줄과 같이 문자열로의 변환과 리스트 컴프리헨션을 이용해서 쉽게 구할 수 있습니다.
#소스코드(6번째 줄 주목)
1
2
3
4
5
6
7
8
9
10
11
12
|
N = int(input())
ans=0 #생성자가 없을 시 답은 0
for num in range(N):
#리스트 컴프리헨션으로 각 자릿수의 합 구하는 법
now_num = num + sum([int(i) for i in str(num)])
if now_num == N: #생성자가 존재할 때
ans=num
break
print(ans)
|
cs |
github.com/HoYoungChun/Algorithm_PS/blob/master/Brute-force/BOJ_2231.py
HoYoungChun/Algorithm_PS
Baekjoon Online Judge, Programmers problem solving by Python, C++ - HoYoungChun/Algorithm_PS
github.com
'Algorithm > Brute-force' 카테고리의 다른 글
[Python] 백준 1018번 : 체스판 다시 칠하기 (S5) - 브루트포스단계별4 (0) | 2021.01.28 |
---|---|
[Python] 백준 7568번 : 덩치 (S5) - 브루트포스단계별3 (0) | 2021.01.28 |
[Python] 백준 2798번 : 블랙잭 (B2) - 브루트포스단계별1 (0) | 2021.01.28 |
[C++] 백준 2798번 : 거꾸로 구구단 (B2) (0) | 2020.07.15 |
[C++] 백준 4641번 : Doubles (B1) (0) | 2020.07.15 |