[프로그래머스] LEVEL3 숫자 게임 JAVA

Pixel Dophin·2023년 8월 31일
0

프로그래머스

목록 보기
47/55

숫자 게임

문제링크

풀이

  1. A arrayB array를 모두 순서대로 정렬한다.
  2. AB를 큰 수 부터 작은 순으로 조회하면서 현재 A array에서 조회하고 있는 값이 B에서 조회하는 값보다 작은 경우에만 승리했다고 생각하여 answer++를 해주고 해당 사원을 경기에 보냈기 때문에 다음 사원으로 변경하는 과정을 거친다. (j--)
  3. B팀의 최종 승점을 최대로 하기 위해서는 A팀값에서 큰 순으로 그보다 큰 B팀의 숫자가 큰 사원을 내보내면서 비교하는 것이 최적을 해를 구할 수 있는 방법이다.

+) 내 풀이의 아래 부분은 필요 없는 코드 였다.. ㅎㅎ
i는 항상 감소하고, j는 특정 상황에서만 감소하게 되어 있어서 i가 0이 되었을 때 j가 0보다 작아지는 경우가 발생하지는 않는다.

if (j < 0) {
    break;
}

코드

import java.util.*;

class Solution {
    public int solution(int[] A, int[] B) {
        int answer = 0;
        
        Arrays.sort(A);
        Arrays.sort(B);
        
        int j = B.length - 1;
        for (int i = A.length - 1; i >= 0; i--) {
            //if (j < 0) {
            //    break;
            //}
            if (A[i] < B[j]) {
                answer++;
                j--;
            }
            
        }
        return answer;
    }
}
profile
안녕 👋 성장하고픈 개발자 💻 입니다

0개의 댓글

관련 채용 정보