GitHub

https://github.com/Choidongjun0830

파이썬 알고리즘 문제 풀이

Baekjoon Online Judge 10610번 파이썬. 그리디.

gogi masidda 2023. 1. 6. 13:34

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

10610번: 30

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

www.acmicpc.net


30의 배수가 되려면, 3의 배수이며, 1의 자리가 0이어야한다.
3의 배수가 되려면, 각 자리 수의 합이 3의 배수가 되어야 한다.

이를 만족시키고, 내림차순 정렬을 하면 30의 배수가 될 수 있는 가장 큰 수를 구할 수 있다.

정답 코드

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

sum = 0
for i in N:
  sum += i
if sum % 3 != 0 or 0 not in N:
  print(-1)
else:
  N = sorted(N,reverse=True)
  for i in N:
    print(i,end='')
728x90