728x90
반응형
1. 문제 설명
2. 풀이
import sys
n = list(sys.stdin.readline().rstrip())
n.sort(reverse=True)
if n[-1] != '0' or sum(map(int, n)) % 3 != 0:
print(-1)
else:
print(''.join(n))
3의 배수 판정법 : 모든 숫자의 합이 3이면 됨.
처음엔 pop 으로 하나씩 뽑아서 판단하는 알고리즘을 만들어야하나 햇지만.
3의 배수는 개별 숫자가 아니라 전체 숫자 합으로 한번에 판명나기에 위의 방법을 선택했음 (아주 간단!)
그리고 해당 문제는 3의 배수가 아닌 30의 배수이기 때문에 1의 자리 숫자가 무조건 0 이어야 한다.
따라서 if 문에 조건 2개를 걸어주었다.
3. 응용
4. 정리
다양한 케이스들이 등장하고, 이걸 해결할 수 있는 치트키를 찾는게 관건인 거 같다.
스택 큐 해쉬 처럼 자료 구조에 대한 이해보다는
여러개의 케이스들이 주어지고, 이걸 한 큐에 판별할 수 있는 점화식을 찾는게
이게 파악이 안되면 지옥의 이프문을 만들어야하는데...
지옥의 이프문을 만드는 순간 몇몇 케이스는 무조건 통과 못한다는거...
알면 쉬운데 알기전까지는 어려운 그리디...
728x90
반응형
'Study > Algorithm & Data structure' 카테고리의 다른 글
코테 유형별 풀이법 (내나름 정리) (0) | 2020.08.28 |
---|---|
[백준][Greedy] 1931번 문제 - 회의실배정 python (200804) (0) | 2020.08.04 |
[백준][heap] 최대 힙, 절댓값 힙 python (200729) (0) | 2020.07.29 |
[백준][heap] 최소힙 python (200726) (0) | 2020.07.26 |
[프로그래머스][heap] 라면공장 python (200725) (0) | 2020.07.25 |
댓글