프로그래머스 LEVEL 3(숫자 게임)

image

  • 사용 언어 : javascript

  • 해결 날짜 : 2022-10-07

  • 해결 방법 :
    • A, B 오름차순 정렬
    • A, B 별 접근할 인덱스를 따로 저장
    • B의 큰 값과 A의 큰 값부터 비교하며 B의 값이 A의 값보다 클 경우 answer 증가 및 두 인덱스 감소
    • 작거나 같을 경우 A의 인덱스만 감소
  • 회고 :
    • 처음에 findIndex()로 만족하는 가장 작은 인덱스의 값을 찾았으나 findIndex()의 시간 복잡도가 O(n)이기 때문에 효율성 테스트에서 통과하지 못함
  • 코드

    function solution(A, B) {
        let answer = 0;
        B.sort((a, b) => a - b);
        A.sort((a, b) => a - b);
            
        let index_A = A.length - 1;
        let index_B = B.length - 1;
            
        while (index_A >= 0) {
            if (B[index_B] > A[index_A]) {
                answer++;
                index_B--;
            } 
            index_A--;
        }
            
        return answer;
    }
    
  • 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges