https://www.acmicpc.net/problem/10610
10610번: 30
어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한
www.acmicpc.net
30 배수의 조건
1. 끝자리가 0이여야함
2. 자리수를 모두 더했을 때 3으로 나눠져야한다.
3의 배수 : 3 6 9 12 15 18 21 은 모두 자리수를 더하면 3의 배수임을 이용하자.
num을 정렬한 후, 3으로 나누어 떨어지지 않거나, 0이 num에 없으면 -1을 출력하는 방식 사용
num = list((input()))
num = sorted(num)
sum = 0
for i in num:
sum += int(i)
if sum % 3 != 0 or '0' not in num:
print(-1)
else:
print(''.join(num[::-1]))
'백준 문제풀이 > 그리드' 카테고리의 다른 글
[백준] 2875 대회 or 인턴 - python (0) | 2022.11.21 |
---|---|
[백준] 11047 동전 0 - python (0) | 2022.11.21 |