코딩하는 해맑은 거북이

[Python] 30 - 백준 본문

코딩테스트

[Python] 30 - 백준

#CJE 2022. 12. 20.
해당 글은 백준 10610번 문제 '30'을 다룬다.

문제

https://www.acmicpc.net/problem/10610

 

10610번: 30

어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한

www.acmicpc.net

 

설명

숫자들을 조합해서 30의 배수가 될 수 있는 가장 큰 값을 출력하는 문제이다.

30의 배수는 10의 배수와도 같으므로 숫자들에 0이 꼭 포함되어 있어야 한다.

그리고 30의 배수는 10으로 나누면 3의 배수와도 같으므로 3, 6, 9, 12(1+2=3), 15(1+5=6), 18(1+8=9), ... 와 같이 숫자들의 총 합이 3의 배수여야 하는 규칙이 있다. 이를 이용해서 해당 문제를 풀어주면 된다.

 

코드

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

if n.count(0) != 0 and sum(n) % 3 == 0:
    n.sort(reverse=True)
    for i in n:
        print(i, end='')
else:
    print(-1)

     

 

 

Comments