[문제풀이] 숫자게임
업데이트:
문제 링크 : 숫자게임
풀이 시간 : 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의 최대값을 계속 유지를 했다.