https://www.acmicpc.net/problem/10610
import sys
input = sys.stdin.readline
n = input().rstrip('\n')
temp = 0
num_list = []
for i in n:
num_list.append(int(i))
num_list = sorted(num_list, reverse=True)
if sum(num_list) % 3 != 0:
print(-1)
elif num_list[-1] != 0:
print(-1)
else:
res = ''.join(map(str, num_list))
print(res)
30의 배수를 찾기 위해선 3의 배수이자 10의 배수인 수를 찾으면 된다.
10의 배수는 일의 자리가 0이면 된다.
3의 배수는 모든 자리의 숫자의 합이 3의 배수이면 된다.
가장 큰 30의 배수는 내림차순을 한 값이므로 입력받은 수를 내림차순으로 정렬하여 맨 마지막 값이 0이 아니거나 숫자의 합이 3으로 나눠지지 않는다면 30의 배수가 아니므로 -1을 출력한다.