알고리즘/Python
[백준/Python] 10610번: 30
_SIHA_
2022. 3. 6. 20:48
📖 문제 링크
https://www.acmicpc.net/problem/10610
10610번: 30
어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한
www.acmicpc.net
👩💻 문제풀이
당연히 순열로 풀어야 한다고 생각했다가 10^5라는 숫자를 모두 순열로 조회하기엔 시간이 너무 오래 걸린다는 걸 깨달았다.
그래서 검색해보니 30의 배수가 되려면 숫자에 0이 들어가야 하고,
각 자리 숫자를 모두 더했을 때 3으로 나눠 떨어지면 30의 배수가 될 수 있다는 것!
수포자인 나에게 이런 문제는 난감하지만 모르는 걸 채워간다는 생각으로 코드를 익혔다.
어렵지 않은 코드지만, 추후 다시 풀었을 때 당황하지 않길 바라며 풀이를 남겨본다.
(https://pacific-ocean.tistory.com/340님의 코드를 참고했다. )
[백준] 10610번(python 파이썬)
문제 링크: https://www.acmicpc.net/problem/10610 10610번: 30 문제 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들
pacific-ocean.tistory.com
✅ 최종 코드
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))