문제 링크 : https://www.acmicpc.net/problem/2212
1. 접근 방법
각 값이 아니라, 각 값의 차이 중 최솟값을 뽑아내는 그리디
2. 풀이 코드
🖥python 코드 링크 : https://github.com/mintropy/baekjoon_py/blob/master/2000/2200/2212.py
📕코드 해설
리스트 컨프리헨션을 활용하여 최소한 간략하게 코드를 작성했다. 그 과정을 풀어쓰면 다음과 같다.
1) 중복 제거를 위한 set
2) 오름차순 정렬을 위한 sorted
3) 각 구간 차이를 구한 리스트
4) 구간 차이 오름차순 정렬
5) 구간 차이 중 K개를 제외한 나머지 선택하여 합으로 출력
3. 생각 정리
그리디도 여러 문제 종류가 있겠지만, 이러한 유형은 점점 익숙해지고, 의도하진 않았지만 숏 코딩과 같은 형식으로 푸는 게 더 익숙하고 편한 느낌이다.
'CS > 알고리즘 & 문제풀이' 카테고리의 다른 글
[알고리즘] 이분 매칭(Bipartite Matching) (0) | 2022.05.22 |
---|---|
[Python] 백준 3806 S를 T로 (0) | 2022.04.17 |
[Python] 백준 2533 사회망 서비스(SNS) (0) | 2022.03.22 |
[Python] 백준 13335 트럭 (0) | 2022.03.21 |
[Python] 백준 2866 문자열 잘라내기 (0) | 2022.03.13 |
댓글