[문제풀이] 숫자게임

업데이트:

문제 링크 : 숫자게임

풀이 시간 : 20분

1. 문제 풀이

숫자를 사용하면 다시 사용하지 못하기 때문에

그리디 하게 풀었다

1) A와 B 배열 정렬

2) A 배열을 돌면서 Bj와 비교

2-1) B[j]가 클 경우, answer를 증가시키고 다음 인덱스로 이동

3) A 배열을 다 돌면 answer를 리턴한다.

2. 소스 코드

    static public int solution(int[] A, int[] B) {
        int answer = 0;
        // 먼저 A와 B 배열을 정렬한다
        Arrays.sort(A);
        Arrays.sort(B);
        int j = B.length-1;
        for(int i =A.length-1; i>=0;i--){
        	// B가 클 경우
            if(A[i]<B[j]){
            	// 승점을 증가 시키고 다음 인덱스로 이동
                answer++;
                j--;
            }
        }
        return answer;
    }

3. 후기

처음에 B를 중심으로 돌아서 실패를 했다.

B가 이기 위해서 사용하지 않은 B의 최대값을 계속 유지를 했다.