728x90
https://programmers.co.kr/learn/courses/30/lessons/12987
풀이)
1. 2개의 배열을 모두 정렬한다
2. 그리고 A와 B모두 뒤에서부터 비교하는데 A의 인덱스를 기준으로 한다
3. 이 때 현재 B의 값이 A의 값보다 큰 경우에만 B의 인덱스를 다음으로 넘겨준다. 아닌 경우에는 B가 이기지 못한 거니까 B의 인덱스는 냅두고 그 앞의 A의 값과 비교하는 것이다!
정렬이랑 뒤에서부터 비교하는 거까지는 생각했는데 인덱스를 어떻게 할지 부분에서 헷갈려서 코드를 찾아봤다
근데 너무 간단해서 좀 허무했던 문제였다,,,ㅠ
자바 코드)
import java.util.*;
class Solution {
public int solution(int[] A, int[] B) {
int answer = 0;
Arrays.sort(A);
Arrays.sort(B);
int bIndex = B.length - 1;
for(int i=A.length-1;i>=0;i--) { //뒤에서부터 비교 -> B가 큰 경우에만 인덱스를 줄여주고 answer++
if(B[bIndex]>A[i]) {
answer++;
bIndex--;
}
}
return answer;
}
}
728x90
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[2019 카카오 개발자 겨울 인턴십] 튜플 - JAVA (0) | 2022.03.30 |
---|---|
[그래프] Level 3 순위 (0) | 2022.02.24 |
[JAVA] Summer/Winter Coding(~2018) 기지국 설치 (0) | 2022.02.21 |
[정렬] Level 2 가장 큰 수 - JAVA (0) | 2022.02.20 |
[이분탐색] Level 3 입국심사 (0) | 2022.02.14 |
댓글