코딩공작소

[백준]30_그리디?정수론? 본문

알고리즘/그리디&완탐

[백준]30_그리디?정수론?

안잡아모찌 2019. 6. 30. 20:00

각 자릿수들을 만져서 30의 배수를 찾는 문제인데 문자열을 다루는 것은 파이썬이 편하기 때문에

파이썬으로 해주었다.

30의 배수가 되기 위한 특성을 먼저 고려해주었다.

그리고 나니까 풀렸다...

 

문제

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

미르코를 도와 그가 만들고 싶어하는 수를 계산하는 프로그램을 작성하라.

입력

N을 입력받는다. N는 최대 105개의 숫자로 구성되어 있으며, 0으로 시작하지 않는다.

출력

미르코가 만들고 싶어하는 수가 존재한다면 그 수를 출력하라. 그 수가 존재하지 않는다면, -1을 출력하라.

 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
= input() #처음 숫자를 입력받는다. str형태
if '0' not in A : print("-1")
else : #0이 있어야 30의 배수가 됨.
    A=list(A) #remove해주기 위해서 list로 했음.
    A.remove("0")
    = list(map(int,A)) #리스트를 인트형으로 변환.
    ssum = 0 #자릿수의 합을 구하기위해서
    for i in A:
        ssum += i
    if ssum%3 != 0 : print("-1")
    else :
        A.sort(reverse=True)
        c = str()
        for i in A:
            c+=str(i)
        print(c+"0")
cs

'알고리즘 > 그리디&완탐' 카테고리의 다른 글

[백준]스타트링크(두번째)  (0) 2019.08.02
[백준]감시  (0) 2019.08.02
[백준]로프  (0) 2019.06.30
[백준]거스름돈  (0) 2019.06.30
[백준]그리디_회의실배정  (0) 2019.06.30