Algorithm/백준 알고리즘_Python
[알고리즘][Python] 백준(BOJ) 10610 30_파이썬
알파이
2020. 10. 15. 11:03
10610 30 www.acmicpc.net/problem/10610
10610번: 30
어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한��
www.acmicpc.net


문제 풀기 전 공부할 것 : 수학, 정렬, 정수론
풀이
<내용>
- 30의 배수가 되려면 10의 배수인지, 3의 배수인지를 확인하면 된다.
- 10의 배수 확인 방법 : 일의 자리 숫자가 0이면 된다.
- 3의 배수 확인 방법 : 모든 자리 숫자의 합이 3으로 나누어 떨어지면 된다.
- 이때 가장 큰 30의 배수는 큰 숫자대로 정렬하는 것이다.
<코드>
n = int(input())
nums = list(str(n))
nums.sort(reverse=True)
def solve(nums):
if nums[-1] != '0':
return -1
if sum(map(int, nums)) % 3 != 0:
return -1
return int(''.join(nums))
print(solve(nums))
728x90
반응형