알고리즘 정복하기!/백준 문제풀이

백준 10610번 Python / Greedy

by seokii 2022. 2. 10.
728x90
반응형

문제 링크

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

 

10610번: 30

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

www.acmicpc.net

 

풀이

N = list(input())
N.sort(reverse=True)
sum = 0

if '0' not in N:
    print(-1)
else:
    for i in N:
        sum += int(i)
    if sum%3 != 0:
        print(-1)
    else:
        print(''.join(N))

30의 배수가 될 수 있는 조건은 끝자리가 0이면서 각 자리 수의 합이 3의 배수여야 합니다.

처음에 내림차순으로 정렬한 후 해당 조건을 만족하지 않으면 -1을 출력,

조건을 만족한다면 .join() 함수로 문자열을 합쳐서 출력하면 됩니다.

 

 

 

728x90
반응형

댓글