Notice
Recent Posts
Recent Comments
Link
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Archives
Today
Total
관리 메뉴

행복한 개구리

백준 21.12.21. 2231번 - 분해합 본문

Algorithm/BaekJoon

백준 21.12.21. 2231번 - 분해합

HappyFrog 2021. 12. 21. 00:44

N = int(input())

result = 0

for gen in range(N + 1):
    A = list(map(int, str(gen)))
    result = gen + sum(A)

    if N == result:
        print(gen)
        break

    if gen == N:
        print(0)
        break
  • 우선 중첩반복문이 아닌 0부터 N까지의 반복문으로 실행하였습니다.
  • A는 gen의 각 숫자들을 리스트형식으로 만든 것입니다.
  • result는 gen과 gen의 각 숫자들의 합을 더한 것입니다.
  • N과 result(gen과 gen의 각 자리 숫자들의 합)이 같다면 반복문에서 gen은 0부터 1씩 올라가는 형식이므로 가장 먼저 조건에 일치한 것이 가장 작은 생성자입니다.
  • 따라서 gen을 출력하며 반복문을 깹니다.
  • 하지만 gen이 입력받은 N과 같아진다면 생성자는 없는 것이므로 0을 출력하고 반복문을 깨줍니다.