Python으로 구현한 10610번 30 문제 풀이입니다.
https://www.acmicpc.net/problem/10610
n = list(input())
n.sort(reverse = True)
sum = 0
for i in n :
sum += int(i)
if sum % 3 != 0 or "0" not in n :
print(-1)
else :
print(''.join(n))
이 문제는 30의 배수가 되는 가장 큰 수를 구하는 문제로, 30의 배수가 되려면 각 자리의 수들의 합을 3으로
나누었을 때 나누어 떨어져야 하며, 일의 자리수가 0이어야 한다.
그렇기 때문에 조건문을 통해 각 자리의 수들의 합이 나누어 떨어지지 않거나 입력받은 수 중 0이 존재하지 않을 경우
-1을 출력하고 그렇지 않는다면 30의 배수이기 때문에 내림차순 한 값들을 join( ) 을 통해 붙여 출력한다.
'백준(Python) 풀이 > 수학' 카테고리의 다른 글
백준(Python) 5565번 영수증 풀이 (0) | 2021.10.12 |
---|---|
백준(Python) 10162번 전자레인지 풀이 (0) | 2021.10.12 |
백준(Python) 1977번 완전제곱수 풀이 (0) | 2021.10.12 |
백준(Python) 6588번 골드바흐의 추측 풀이 (0) | 2021.10.12 |
백준(Python) 2576번 홀수 풀이 (0) | 2021.10.12 |