코딩테스트 연습

프로그래머스 코딩테스트 연습 - 요격 시스템 JavaScript

citron031 2023. 5. 27. 23:25

사실 이번 문제는 문제를 푸는데 애를 많이 먹었고, 검색을 통해서 어떻게 문제에 접근해야할지 알아보았다.

스스로 해결한 문제가 아니어서 아쉽지만, 이런 문제에서 당황하지 않고 어떻게 접근하면 좋을지 생각할 수 있었던 것 같다.

function solution(targets) {
    let answer = 0;
    let prevRight = -1;
    const sorted = targets.sort((a, b) => a[1] - b[1]);
    for(let i = 0; i < sorted.length; i++) {
        const [left, right] = sorted[i];
        // 현재 커버할 수 있는 영역을 초과. 새로운 영역 지정.
        if(left >= prevRight) {
            prevRight = right;
            answer++;
        }
    }
    return answer;
}

내 생각에 이 문제의 가장 중요한 점은 어떻게 정렬하는지 인것 같다.

정렬을 한뒤에 차례로 접근하여 이전까지의 값과 비교하는 식으로 해결하였는데, 하나의 좌표에 데이터가 두 개가 있으므로 어떤 데이터로 정렬하고, 어떻게 값을 비교해 나가는지가 관점이었다.