백준 10610번 - 30
백준 10610번 바로가기 나의 풀이 주어진 숫자를 재조합해서 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)