말랑한 하루

[Programmers] 숫자 게임 (Lv 3, JavaScript) 본문

문제풀이/Programmers

[Programmers] 숫자 게임 (Lv 3, JavaScript)

지수는말랑이 2022. 12. 10. 19:31
반응형

[ 개요 ]
두개의 값을 비교하는 과정에서, 한측의 값이 고정되어 있으면

다른측에서는 모든 경우에 대해 대처할 수 있음을 가정으로 진행할 수 있다.

즉, A에 대해 B는 적재 적소에 원하는 값을 배치할 수 있는 이야기다.

결론적으로, B가 A에 대해 승리하기 위한 요소가 필요하므로 B와 A에 대해 오름, 내림차순하여

A의 순서에 따라 B의 MAX값을 비교하여 큰경우 B를 다음 수로 넘기며 진행하면 된다.


[ 소스 코드 ]

function solution(A, B) {
    let answer = 0;
    A.sort((o1, o2) => o2 - o1);
    B.sort((o1, o2) => o1 - o2);
    A.forEach((a) => {
        if (a < B.at(-1)) {
            answer++;
            B.pop();
        }
    })
    return answer;
}

[ 코드 분석 ]

그러나 왜 B를 내림차순으로 변경하고 B[0]과 B.shilft()를 사용했을 때, 효율성에서 광탈하는 이유를 모르겠다.

반응형
Comments