728x90
728x90
반응형
2212번: 센서
첫째 줄에 센서의 개수 N(1 ≤ N ≤ 10,000), 둘째 줄에 집중국의 개수 K(1 ≤ K ≤ 1000)가 주어진다. 셋째 줄에는 N개의 센서의 좌표가 한 개의 정수로 N개 주어진다. 각 좌표 사이에는 빈 칸이 하나 있
www.acmicpc.net
문제 설명은 밑에 링크를 타시고 보시면 됩니다.
😶🌫️
[Python][백준 2212][정렬][그리디] 센서 - 컴도리돌이
풀이과정 해당 문제는 좌표를 단순히 정렬시켜서 센서들 간의 거리를 저장하고 정렬하여 n-k까지 합을 구하면 된다. 여기서 n-k까지 합을 구하는 이유를 물어본다면,, 문제를 그리면서 푸는 것을
comdolidol-i.tistory.com
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int k = Integer.parseInt(br.readLine());
int [] arr = new int [n];
StringTokenizer st = new StringTokenizer(br.readLine()," ");
for(int i=0; i< n ; i++){
arr[i] = Integer.parseInt(st.nextToken());
}
solution(n,k,arr);
}
public static void solution(int n, int k, int[] arr){
Arrays.sort(arr);
int [] newArr = new int [n-1];
for(int i=0; i< n-1; i++){
newArr[i] = arr[i+1] - arr[i];
}
Arrays.sort(newArr);
int ans = 0;
for(int i=0; i<n-k; i++){
ans += newArr[i];
}
System.out.println(ans);
}
}
728x90
728x90
'Language > JAVA' 카테고리의 다른 글
[JAVA][백준 8980][그리디, 정렬] 택배 - 컴도리돌이 (0) | 2022.08.16 |
---|---|
[JAVA][백준 17845][배낭문제] 수강 과목 - 컴도리돌이 (0) | 2022.08.02 |
[JAVA][백준 12015][이분 탐색] 가장 긴 증가하는 부분 수열2 - 컴도리돌이 (0) | 2022.07.30 |
[Java][백준 2470][투 포인터] 두 용액 - 컴도리돌이 (0) | 2022.07.29 |
[JAVA][백준 20437][문자열] 문자열 게임 2 - 컴도리돌이 (0) | 2022.07.25 |