반응형
백준 2231번 분해합 문제이다.
브루트포스 유형의 문제이다.
분해합에 대한 설명이 주어졌다. 해당 숫자와 각 자리의 숫자를 모두 더한 값을 분해합이라 정의하고 있고
원하는 문제의 답은 분해합을 구하는 것이 아닌 해당 분해합을 가지는 가장 작은 숫자를 구하는 것이 문제이다.
역시 브루트포스 문제이기 때문에 하나하나 확인하면 될것이다.
0부터 해당 숫자까지의 숫자들을 하나하나 분해합을 구해 해당 숫자가 되면 멈추고 출력하도록 만들어 주었다.
코드는 python 언어를 사용하였다.
def bunhehap(n):
tmp = n
i = 1
result = n
while True:
tmp = tmp // 10
if tmp == 0:
break
i += 1
for j in range(i):
result += (n % 10)
n //= 10
return result
def func(n):
for i in range(n):
if n == bunhehap(i):
print(i)
return
print(0);
n = int(input())
func(n)
생성자가 없는 경우에는 0을 출력하라는 조건을 빠뜨려서 틀리고 말았다.
항상 문제를 잘 읽자..
반응형
'Computer Science > 백준' 카테고리의 다른 글
백준 1436번 영화감독 숌 (0) | 2020.02.06 |
---|---|
백준 1018번 체스판 다시 칠하기 (0) | 2020.02.06 |
백준 7568번 덩치 (0) | 2020.02.06 |
백준 2798번 블랙잭 (0) | 2020.02.06 |
백준 11729번 하노이의 탑 이동 순서 (0) | 2020.02.03 |