예제 입력배열을 서류 점수로 오름차순 정렬해보자
1. 첫 번째 TC
[[1, 4], [2, 3], [3, 2], [4, 1], [5, 5]]
2. 두번째 TC
[[1, 4], [2, 5], [3, 6], [4, 2], [5, 7], [6, 1], [7, 3]]
여기서 알 수 있는 것은 면접시험만 생각하면 된다는 것이다.
2. 두번째 TC
i = 0일 때
면접 순위 = 4
i = 1일 때
면접 순위 = 5 면접순위가 더 크므로 안된다. 당연히 서류순위는 안될 것이니까
i = 2일 때
면접 순위 = 6 면접순위가 더 크므로 안된다. 당연히 서류순위는 안될 것이니까
i = 3일 때
면접 순위 = 2 면접순위가 더 작다. 해당 인덱스는 가능하다. 이제 가장 작은 면접순위는 2가 된다.
i = 4일 때
면접 순위 = 7 면접순위가 더 크므로 안된다. 당연히 서류순위는 안될 것이니까
i = 5일 때
면접 순위 = 1 면접순위가 더 작다. 해당 인덱스는 가능하다. 이제 가장 작은 면접순위는 1이 된다.
i = 6일 때
면접 순위 = 3 면접순위가 더 크므로 안된다. 당연히 서류순위는 안될 것이니까
즉 가능한 개수는 3이다.
이것을 코드로 나타내보자
먼저 서류순위로 오름차순 정렬 후 현재 인터뷰점수와 비교하는 것이다. 만약 인터뷰순위가 더 높은 것이 있으면 현재 인터뷰순위를 갱신한다.
그리드알고리즘은 주로 정렬, 직관적으로 파악하는 능력이 있어야 할 것 같다.