문제출처: https://www.acmicpc.net/problem/15553
1. 문제 접근 방식
13614번이랑 문제가 비슷했던것 같다.
각 인접한 원소들의 차이값을 새로운 배열에 담고
작은 순서대로 sorting한다.
가장 큰 원소를 k-1번 pop하고
1을 k번 append 해준다음 리스트의 합을 출력한다.
2. 내가 푼 코드
import sys
n, k = map(int,sys.stdin.readline().split())
arr = []
for _ in range(n):
arr.append(int(sys.stdin.readline()))
diff = []
for i in range(len(arr)-1):
diff.append(arr[i+1]-arr[i])
diff.sort()
for _ in range(k-1):
diff.pop()
for _ in range(k):
diff.append(1)
print(sum(diff))
3. 결과 및 느낀점
자주 본 그리디+정렬 유형이다. 2212번 13614번
잘 공부해두자.
'[Boj문제풀이]' 카테고리의 다른 글
[Boj/백준] 18234 Python (0) | 2021.10.06 |
---|---|
[Boj/백준] 2170 Python (0) | 2021.10.05 |
[Boj/백준] 13164 Python (0) | 2021.10.05 |
[Boj/백준] 2075 Python (0) | 2021.10.04 |
[Boj/백준] 7983 Python (0) | 2021.10.04 |