sm 기술 블로그

76. 2231 (분해합) 본문

문제/백준_파이썬

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을 출력한다.

'문제 > 백준_파이썬' 카테고리의 다른 글

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