
이번 문제는 꽤 간단해보였지만 애를 먹었다.
최대 나 되는 숫자를 모두 조합하여 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으로 나누어떨어진단다.
이런 문제는 머리를 쥐어뜯는 것 보다 빨리 답을 보고 알고 넘어가는 게 나은 것 같다.