[Python] 백준 10610: 30

nimoh·2023년 7월 31일


이번 문제는 꽤 간단해보였지만 애를 먹었다.
최대 10510^5나 되는 숫자를 모두 조합하여 30에 나누어 떨어지는 지 확인하는 건 전혀 불가능해보였다.

알아보니 접근법은 매우 간단했으나, 모르면 못 풀 수밖에 없었다.

n = input()

sorted_n = sorted(n, reverse=True)
sum = 0
if int(sorted_n[-1]) != 0:
    print(-1)
else:
    for i in sorted_n:
        sum += int(i)
    if sum % 3 != 0:
        print(-1)
    else:
        print(''.join(sorted_n))

수를 이루는 모든 숫자를 더한 값이 3으로 나누어 떨어지면 3으로 나누어떨어진단다.

이런 문제는 머리를 쥐어뜯는 것 보다 빨리 답을 보고 알고 넘어가는 게 나은 것 같다.

profile
부족함을 인정하는 순간이 성장의 시작점이다.

0개의 댓글