연습장/HackerRank 문제풀이
[HackerRank - Easy] Flatland Space Stations - JavaScript
Tesseractjh
2023. 1. 1. 19:49
🔗 문제 링크
https://www.hackerrank.com/challenges/flatland-space-stations/problem?isFullScreen=true
Flatland Space Stations | HackerRank
Find the maximum distance an astronaut needs to travel to reach the nearest space station.
www.hackerrank.com
✏️ 풀이
function flatlandSpaceStations(n, c) {
c.sort((a, b) => a - b);
let max = Math.max(c[0], n - c[c.length - 1] - 1);
for (let i = 0; i < c.length - 1; i++) {
max = Math.max(max, Math.floor((c[i + 1] - c[i]) / 2));
}
return max;
}
우주정거장으로부터 가장 먼 곳의 거리는 각 정거장 사이의 거리를 2로 나누어 내림한 값과 같다. 그리고 이 외에도 0번 도시와 첫 번째 정거장 사이의 거리, 그리고 마지막 정거장과 (n - 1)번 도시와의 거리도 확인해야 한다. 따라서, ① 각 정거장 사이의 거리를 2로 나누어 내림한 값 모두, ② 0번 도시와 첫 번째 정거장 사이의 거리, ③ 마지막 정거장과 (n - 1)번 도시와의 거리를 모두 구하여 최댓값을 구하면 된다.
먼저 c를 오름차순 정렬하여 max의 값을 ②, ③ 중 더 큰 값으로 초기화한다. 그 후에 반복문을 통해 c를 순회하면서 각 정거장 사이의 거리를 2로 나누어 내림한 값과 max를 비교하여 갱신하였다.