백준 문제풀이/그리드

[백준] 10610 30 - python

peach_h 2022. 11. 23. 14:57

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