Coding Test/정렬

[TIL] 정렬(백준 10610 파이썬) 2022.01.21

HUR129 2022. 1. 21. 21:27

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

 

10610번: 30

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

www.acmicpc.net

 

풀이 :

 

#30의 배수 만드는 조건 2개 : 각자리 합이 3, 0으로 끝나야함.

a=list(input()) ##들어오는게 char 로 하나씩 들어오는게 point.
a.sort(reverse=True)
sum=0
for i in a:
    sum+=int(i)
if sum%3 != 0 or '0' not in a:  ##둘다 만족시키려면 하나라도 조건에 어긋나면 아웃처리
    print(-1)
else:
    print("".join(a))

포인트는 결국 30의 배수를 만들려면 뭘 해야 하는가. 그게 되는애들에 대해서만 sort해서 최대값구하고 나머지는 -1로 out 처리