CodingTest/Baekjoon

[baekjoon] 백준 10610번(파이썬): 30

JunJangE 2021. 12. 25. 12:00

문제

 

10610번: 30

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

www.acmicpc.net

알고리즘

- 가장 큰 수를 만들기 위해 입력받은 리스트를 오름차순으로 정렬한다. 

- join() 함수를 사용하여 정렬한 리스트를 합쳐주어 하나의 수로 만들어준다.

- 이때 수가 30으로 나누어 떨어지면 미르코가 만들고 싶어 하는 가장 큰 수가 되는 것이다. 

코드

import sys


n = list(map(str, sys.stdin.readline().strip()))
n.sort(reverse= True) # 가장 큰 수를 만들기 위해 내림차순으로 정렬
n = "".join(n) # 정렬한 수를 합쳐준다.

# 조건문을 통해 수가 30으로 나누어 떨어지면 수를 출력
if int(n) % 30 == 0:
    print(n)

# 나누어 떨어지지 않으면 -1 를 출력
else:
    print(-1)

github

 

GitHub - junjange/CodingTest: 내가 푼 코딩 테스트 문제와 해결법

내가 푼 코딩 테스트 문제와 해결법. Contribute to junjange/CodingTest development by creating an account on GitHub.

github.com