Notice
Recent Posts
Recent Comments
Link
Dev.baelanche
[백준 2212] 센서 본문
반응형
예제 1, 6, 9, 3, 6, 7 로 설명해보겠다. (집중국 개수 k=2)
1. 오름차순으로 정렬한다. (1, 3, 6, 6, 7, 9)
2. 새로운 배열 m을 만들어 각 센서 사이의 거리 정보를 담는다. (2, 3, 0, 1, 2)
3. m의 값 중 가장 큰 수를 뺀다. (필자는 0을 대입하는 방식으로 했다.)
4. 3번을 k-1 번 반복한다.
5. m배열의 모든 값을 더하여 출력한다.
채점 99% 에서 계속 런타임에러가 발생했는데,
n = 1 일때에 대한 예외가 발생해서였다. 아래 코드에서 n = 1이면 m 배열의 길이가 0이어서 예외처리를 해주었다.
마찬가지로 n <= k 일때도 조심해주면 되겠다.
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int k = sc.nextInt();
int a[] = new int[n];
int m[] = new int[n-1];
for(int i=0; i<n; i++)
a[i] = sc.nextInt();
Arrays.sort(a);
for(int i=1; i<n; i++)
m[i-1] = a[i] - a[i-1];
for(int i=0; i<k-1; i++) {
int max = 0;
int idx = 0;
for(int j=0; j<n-1; j++) {
if(max < m[j]) {
max = m[j];
idx = j;
}
}
if(n != 1)
m[idx] = 0;
}
int sum = 0;
for(int i=0; i<n-1; i++)
sum += m[i];
System.out.println(sum);
}
}
반응형
'Data Structure & Algorithm > PS - JAVA' 카테고리의 다른 글
[백준 11057] 오르막 수 (0) | 2019.04.23 |
---|---|
[백준 9251] LCS (0) | 2019.04.23 |
[백준 1969] DNA (0) | 2019.04.22 |
[백준 2217] 로프 (0) | 2019.04.22 |
[백준 1700] 멀티탭 스케줄링 (0) | 2019.04.22 |
Comments