본문으로 바로가기

programmers. 숫자 게임

category Algorithm/문제 2021. 6. 26. 16:02

문제

링크

 

코딩테스트 연습 - 숫자 게임

xx 회사의 2xN명의 사원들은 N명씩 두 팀으로 나눠 숫자 게임을 하려고 합니다. 두 개의 팀을 각각 A팀과 B팀이라고 하겠습니다. 숫자 게임의 규칙은 다음과 같습니다. 먼저 모든 사원이 무작위로

programmers.co.kr

풀이

내 풀이는 다음과 같다

  1. A와 B 배열을 미리 정렬
  2. 인덱스 1 부터 시작하여 A와 B의 원소를 비교
  3. B가 크다면 카운트를 1 올리고 인덱스를 +1
  4. 그렇지 않다면 B의 인덱스만 1 올리고 다시 2번으로
  5. B의 인덱스 끝에 도달한다면 종료

A의 순서가 어떻든지 간에 B의 순서 또한 우리가 정할 수 있기 때문에 A의 순서는 중요하지 않기 때문에 배열을 크기 순으로 정렬이 가능

그래서 A와 B를 크기 순으로 정렬하면 인덱스만 늘려가며 편하게 비교할 수 있다

나는 인덱스 생각하기가 귀찮아서 내림차순으로 정렬 후 배열에서 pop 해주었다

코드

    function solution(A, B) {
        var answer = 0;

        A.sort((a, b) => b-a);
        B.sort((a, b) => b-a);

        for(let i=A.length-1; i>=0&& B.length; i--){
            let temp = B.pop();

            while(A[i] >= temp){
                temp = B.pop();
            }
            if(A[i] < temp) answer++;
        }

        return answer;
    }

'Algorithm > 문제' 카테고리의 다른 글

programmers. 거스름돈  (0) 2021.06.29
백준 readline을 이용한 입/출력  (0) 2021.06.28
programmers. 110 옮기기  (0) 2021.06.25
programmers. 최솟값 만들기  (0) 2021.06.23
programmers. N개의 최소공배수  (0) 2021.06.22