백준 10610번 -python

686 단어 백준백준

그리디알고리즘


n=list(str(input()))
n=list(map(int,n))

sum=0
for i in range(len(n)):
    sum+=n[i]
if not (sum%3) and 0 in n  :
    n.sort()
    n.reverse()
    n=list(map(str,n))
    n=''.join(n)
    print(int(n))
else :
    print(-1)

30의 배수는 3*10의 배수이다. 즉 3의 배수이면서 10의 배수여야한다.
3의 배수는 모든 자릿수의 값의 합이 3의 배수 일 때, 3의 배수이다. 따라서 모든 자리의 자릿수를 더한 후, 3으로 나누어 나머지가 나오지 않는다면 3의 배수가 아니다. 또한 10의 배수는 1의 자리의 수가 0 이여야 한다. 결과로 모든 자리수의 합이 3으로 나눠지면서 끝자리수가 0 인 값이 입력한 n에 대한 30의 배수의 값을 만들어 낼 수 있다. 그렇게 나온 결과를 내림차순으로 정렬하면 답이된다.

좋은 웹페이지 즐겨찾기