반응형
문제 출처: www.acmicpc.net/problem/2212
1 . 문제 접근 방식
- 먼저 집중국의 좌표를 오름차순으로 정렬을 한다. 그리고 그 집중국들 간의 거리를 계산하고 계산된 거리를 내림차순으로 정리한다. K개의 센서를 사용해야 하기 때문에 내림차순으로 계산된 거리를 가장 큰수부터 K-1개 제거한뒤 합을 구하면 원하는 결과값을 얻을 수 있다.
2 . 내가 푼 코드
import sys
N = int(sys.stdin.readline())
K = int(sys.stdin.readline())
sensors = sorted(list(map(int, sys.stdin.readline().split())))
# 집중국의 수가 더 많을 경우 센서와 동일하게 설치하면 되기 때문에 0 출력
if K >= N:
print(0)
sys.exit()
dis = []
# 거리를 계산하고 오름차순 정렬
for i in range(1, N):
dis.append(sensors[i]-sensors[i-1])
dis.sort(reverse=True)
# 가장 큰 수를 K-1개 제거
for _ in range(K-1):
dis.pop(0)
print(sum(dis))
3 . 결과 및 느낀점
- 성공! 점점 난이도가 올라가는만큼 생각하는데 시간이 걸린다 ㅠ 심지어 에러처리를 안했더니 런타임 에러까지....
출처: https://naekang.tistory.com/32 [주간비행]
반응형
'개인 공부 > Algorithm' 카테고리의 다른 글
[개인공부] 알고리즘 공부 #4 (0) | 2021.04.08 |
---|---|
[Baekjoon/백준] 2437번 Python (0) | 2021.04.07 |
[Baekjoon/백준] 2217번 Python (0) | 2021.04.07 |
[개인공부] 알고리즘 공부 #3 (0) | 2021.04.06 |
[Baekjoon/백준] 1026번 Python (0) | 2021.04.06 |