728x90
반응형

생각보다 쉬운 문제이다. 30의 배수이려면 일단 맨 마지막 자리의 숫자가 0이어야 한다. 

그리고 3의 배수인지 확인하는 방식과 동일하게 30의 배수는 각 자리 숫자들의 합이 3의 배수이어야 한다.

이 점들과 정렬을 사용하면 문제를 정말 쉽게 풀 수 있다. 

숫자 안에 0이 안 들어있으면 어차피 30의 배수가 안되고, 0이 들어있어도 각 자리 숫자들의 합이 3의 배수가 아니면 어차피 30의 배수가 아니기에, 그냥 입력을 내림차순 정렬한 수가 30의 배수이면 출력, 아니면 -1을 출력해주면 된다. 

EX) n = 102 -> 210 -> 210%30 == 0 -> Ok!

EX) n = 2931 -> 9321 -> 9321%30 != 0 -> No!

s = sorted(input(), reverse=True)
n = int(''.join(s))
print(n if n % 30 == 0 else -1)
728x90
반응형

+ Recent posts