이번에 풀어본 문제는
프로그래머스 숫자 게임 입니다.
import java.util.Arrays;
class Solution {
public int solution(int[] A, int[] B) {
int answer = 0;
int arraySize = A.length;
Arrays.sort(A);
Arrays.sort(B);
int BIdx = arraySize - 1;
for (int i = arraySize - 1; i >= 0; i--) {
if (A[i] < B[BIdx]) {
BIdx--;
answer++;
}
}
return answer;
}
}
두 그룹 A, B가 주어진 숫자를 가지고 게임을 합니다.
단순하게 숫자가 더 큰사람이 1점을 가져가는 게임으로, B팀이 주어진 숫자로 낼 수 있는 가장 큰 점수를 반환하는 문제입니다.
주어진 순서는 중요하지 않고, 미리 공개된 A의 숫자를 가진 숫자로 가장 많이 이기면 되므로, 두 배열을 정렬한 후 이길 수 있는 모든 경우를 카운트해주면 해결할 수 있습니다.