Notice
Recent Posts
Recent Comments
Link
«   2025/12   »
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을 출력하고 반복문을 깨줍니다.