728x90
2025.02.10 (월)
오늘의 문제: 센서
출처가 적혀 있어서 따로 문제를 풀 수도 있다!
오늘의 문제 코드
import java.util.*;
import java.io.*;
public class Main {
public static int minSensorRange(int n, int k, int[] sensors) {
// 센서 위치 정렬
Arrays.sort(sensors);
// 인접한 센서 간의 거리 계산
ArrayList<Integer> distances = new ArrayList<>();
for (int i = 1; i < n; i++) {
distances.add(sensors[i] - sensors[i-1]);
}
// 거리를 정렬하여 가장 큰 거리부터 처리
Collections.sort(distances);
// 전체 거리에서 k-1개의 가장 큰 거리를 제외
int result = ____; // 초기 전체 거리
// k-1개의 가장 큰 거리를 제외
for (int i = 0; i < Math.min(k-1, n-1); i++) {
result -= ____; // 가장 큰 거리부터 제외
}
return ____; // 최종 결과 반환
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int k = Integer.parseInt(br.readLine());
int[] sensors = Arrays.stream(br.readLine().split(" "))
.mapToInt(Integer::parseInt)
.toArray();
System.out.println(minSensorRange(n, k, sensors));
}
}
이 빈칸을 채우는 거다!
1. // 전체 거리에서 k-1개의 가장 큰 거리를 제외
int result = ____; // 초기 전체 거리
위에서 정렬을 했기 때문에 c를 골랐는데 정답은 a였다..
초기 전체 거리는 정렬된 센서 배열에서 마지막 센서와 첫 번째 센서의 위치 차이였기 때문
2. // k-1개의 가장 큰 거리를 제외
for (int i = 0; i < Math.min(k-1, n-1); i++) {
result -= ____; // 가장 큰 거리부터 제외
}
이건 for문을 도니깐 -i를 해줘야 해당 반복문에서의 가장 큰 거리를 제외할 수 있다.
3. return ____; // 최종 결과 반환
이렇게 첫째날은 1번 ❌, 2번 ⭕️, 3번 ⭕️
'Algorithm > 탭고리즘' 카테고리의 다른 글
[탭고리즘] 3일차 (0) | 2025.02.12 |
---|---|
[탭고리즘] 2일차 (0) | 2025.02.12 |
[탭고리즘] 탭고리즘? (0) | 2025.02.12 |