문제/백준_파이썬

76. 2231 (분해합)

sm_hope 2022. 6. 9. 10:42
N = int(input())
min = 1000000

for i in range(N):
    num = sum = i

    while (num != 0):
        sum += num % 10
        num //= 10
    # 각 자릿수를 더해줌

    if sum == N and sum < min:
        min = i

if min == 1000000:
    print(0)
else:
    print(min)

 

여기서 핵심은 

 while (num != 0):
        sum += num % 10
        num //= 10

이것이다.

이 로직이 1의 자리 수만 뽑아낸 다는 것을 알면 크게 어렵지 않을 것이다.

 

ex) 15

num % 10 = 5   num // 10 = 1

num % 10 = 1   num // 10 = 0

 

 

만약 생성자가 없다면 처음에 초기화한 min 값이 그대로 들어와서 0을 출력한다.