문제 : 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 처리
'Coding Test > 정렬' 카테고리의 다른 글
[TIL] 정렬(백준 1302 파이썬) 2022.01.23 (0) | 2022.01.23 |
---|---|
[TIL] 정렬(백준 1302 파이썬) 2022.01.22 (0) | 2022.01.22 |
[TIL] 정렬(백준 8979 파이썬) 2022.01.20 (0) | 2022.01.20 |
[TIL] 정렬(백준 1181 파이썬) 2022.01.19 (0) | 2022.01.19 |
[TIL] 정렬(백준 2309 파이썬) 2022.01.18 (0) | 2022.01.18 |