[알고리즘] 완전탐색, 브루트 포스 백준 2231번 - 분해합

minidoo·2020년 9월 19일
0

알고리즘

목록 보기
20/85
post-thumbnail
N = int(input())
answer = []

num = 1
for _ in range(1, N):
    num_list = list(map(int, list(str(num))))
    if num + sum(num_list) == N:
        answer.append(num_list)
        break
    else:
        num += 1

if len(answer) == 0:
    print(0)
else:
    answer = ''.join(list(map(str, answer[0]))) 
    print(int(answer))

풀이과정

  1. 생성자는 N을 넘을 수 없음으로 N을 기준으로 for문을 돌린다.
  2. 생성자는 num이며 1부터 시작한다.
  3. num의 각 자리수를 num_list 배열에 넣는다.
  4. 각 자리수와 num의 합이 N이라면 반복문을 빠져나오고, 그렇지 않으면 num 값에 1을 더해 N과 같아질 때까지 반복문을 돌린다.

0개의 댓글