아이공의 AI 공부 도전기

[Baekjoon] 10610번 : 30 (Python, 문자열)

 

     

 

 

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

 

10610번: 30

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

www.acmicpc.net

 

코드 링크

https://github.com/stellaluminary/Baekjoon

 

GitHub - stellaluminary/Baekjoon

Contribute to stellaluminary/Baekjoon development by creating an account on GitHub.

github.com

 

Python

 

방법 1 - 메모리 38548KB / 시간 96ms / 코드 길이 135B

 

30의 배수라 함은 끝자리가 0으로 하나 이상이 존재해야하고 0을 제외한 각 자리수의 합이 3의 배수가 되어야 한다.

그리고 출력값은 만들고 싶은 수 중 가장 큰 수이므로 숫자를 list로 받아 역순으로 정렬한 뒤 위 조건에 맞는 조건에 한하여 출력하고 그렇지 않다면 -1을 출력하도록 만드는 것이 최선이다.

 

n = list(map(int, input()))
n.sort(reverse=True)
if n[-1] == 0 and sum(n) % 3 == 0:
    print(''.join(map(str, n)))
else:
    print(-1)

 

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading