문제/백준_파이썬
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을 출력한다.