sm 기술 블로그
76. 2231 (분해합) 본문
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을 출력한다.
'문제 > 백준_파이썬' 카테고리의 다른 글
78.1018(체스판 다시 칠하기) (0) | 2022.06.11 |
---|---|
77. 7568(덩치) (0) | 2022.06.11 |
75. 2798(블랙잭) (0) | 2022.06.08 |
74. 11729(하노이 탑 이동 순서) (0) | 2022.06.08 |
73. 2447 (별 찍기 - 10) (0) | 2022.06.06 |
Comments