나의 풀이
주어진 숫자를 재조합해서 30의 배수를 만드는 문제. $ 30 = 3 * 10 $ 이므로 두 가지를 확인하면, 30의 배수를 만들 수 있는지 알 수 있다.
- 주어진 숫자에 0이 포함되는가
- 각 자리의 합이 3의 배수인가 (3의 배수 판별법) 만들 수 있는 최대 숫자는 각 자리를 내림차순 정렬하면 쉽게 구할 수 있다.
# 입력
import sys
n = str(sys.stdin.readline().strip())
nums = list(map(int, list(n)))
# 처리
if '0' in n and sum(nums) % 3 == 0:
print(''.join(map(str, sorted(nums, reverse=True))))
else:
print(-1)