https://www.acmicpc.net/problem/2212
2212번: 센서
첫째 줄에 센서의 개수 N(1 ≤ N ≤ 10,000), 둘째 줄에 집중국의 개수 K(1 ≤ K ≤ 1000)가 주어진다. 셋째 줄에는 N개의 센서의 좌표가 한 개의 정수로 N개 주어진다. 각 좌표 사이에는 빈 칸이 하나 있
www.acmicpc.net
5번을 읽었는데 문제가 잘 이해가 안되서 답을 찾아봤다.😂
그냥 쉽게 말하면 n개의 센서를 k개의 구간으로 나누기 더만!!
내가 독해력이 떨어지나....ㅋㅋㅋ
< 참고 블로그에 자세히 설명이 있으니 참고 하세용>
정렬을 이용하여 그리디 방식으로 풀이하였다.
- 만약 집중국의 개수가 센서보다 크거나 같다면 0이다.
1) 센서들을 순서대로 만든다.(오름차순 정렬)
2) 센서들간의 거리 계산
3) 거리를 내림차순으로 정렬한다.
4) k개의 구간으로 나누려면 k-1번 잘라야하므로 이것은 k-1번의 거리를 제거해도 된다는 것이다.
5) k-1번 거리를 큰것부터 제거한다.
6) 남은 거리의 총 합을 구해 출력한다.
코드 :
if __name__=="__main__" :
n = int(input())
k = int(input())
sensor = list(map(int,input().split()))
# 집중국이 더 많을 경우
if k >=n :
print(0)
exit(0)
else :
# 오름차순 정렬
sensor.sort()
cha = []
# 간격을 구한다.
for i in range(1,len(sensor)) :
cha.append(sensor[i]-sensor[i-1])
# 내림차순 정렬
cha.sort(reverse=True)
# k-1개 제거
for i in range(k-1) :
cha.pop(0)
print(sum(cha))
참고 블로그 :
https://journeytosth.tistory.com/16
[알고리즘] 백준 2212번 : 센서
백준 2212번 : 센서 (문제 링크) 사용 언어 : 파이썬(Python) 문제 유형 : 그리디 난이도 : 하 소스코드 import sys n = int(sys.stdin.readline()) k = int(sys.stdin.readline()) pos = sorted(list(map(int, sy..
journeytosth.tistory.com
'알고리즘 > 백준 문제풀이' 카테고리의 다른 글
[Python/BOJ] 백준2629 양팔저울_DP (0) | 2022.10.23 |
---|---|
[Python/BOJ] 백준11404 플로이드_플로이드와샬 (0) | 2022.10.15 |
[Python/BOJ] 백준2138 전구와 스위치_그리디 (1) | 2022.09.30 |
[Python/BOJ] 백준 1080 행렬_그리디 (0) | 2022.09.27 |
[Python/BOJ] 백준 2615 오목_구현 (0) | 2022.09.26 |