연습장/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를 비교하여 갱신하였다.