티스토리 뷰
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을 출력하고, 이 조건들에 들어가지 않으면 가장 큰 수부터 띄우지 않고 출력하면 된다.
'학습 내용 > 백준 문제풀이' 카테고리의 다른 글
백준 12970 파이썬 - AB (0) | 2022.09.03 |
---|---|
백준 1783 파이썬 - 병든 나이트 (2) | 2022.09.01 |
백준 1744 파이썬 - 수 묶기 (0) | 2022.08.31 |
백준 1541 파이썬 - 잃어버린 괄호 (0) | 2022.08.23 |
백준 12015 파이썬 - 가장 긴 증가하는 부분 수열 2 (0) | 2022.08.23 |