티스토리 뷰

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

 

10610번: 30

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

www.acmicpc.net

문제

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

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

코드

import sys
n = sys.stdin.readline().rstrip()
if '0' not in n or int(n) % 3 != 0:
    sys.stdout.write('-1')
    exit()
arr = [int(i) for i in n]
arr.sort(reverse=True)
for i in arr:
    sys.stdout.write(str(i))

풀이

30의 배수는 3으로 나누어 떨어져야 하고, 수에 0이 하나는 있어야 한다. 0이 하나도 없거나 3으로 안 나누어 떨어지면 -1을 출력하고, 이 조건들에 들어가지 않으면 가장 큰 수부터 띄우지 않고 출력하면 된다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
TAG
more
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함