거의 다 생각했는데 ...!
import sys
input = sys.stdin.readline
t = int(input())
for _ in range(t):
n = int(input())
apply = []
for _ in range(n):
apply.append(list(map(int, input().split())))
paper = sorted(apply, key=lambda x: x[0])
minimum = paper[0][1]
cnt = 1
for i in range(1, n):
temp = minimum
minimum = min(paper[i][1], minimum)
if minimum != temp:
cnt += 1
print(cnt)
메인 아이디어는 어떤 하나(서류 or 면접)로 정렬하고 나머지 하나의 등수로 판단해주면 되는 것이다.
거의 다 생각했는데 두 번째 케이스를 어떻게 반영할까 생각하다가 minimum
값을 갱신해주는 것으로 해결했다.
import sys
input = sys.stdin.readline
T = int(input())
for _ in range(T):
N = int(input())
rank = [list(map(int, input().split())) for _ in range(N)]
rank_asc = sorted(rank)
top = 0
result = 1
for i in range(1, len(rank_asc)):
if rank_asc[i][1] < rank_asc[top][1]:
top = i
result += 1
print(result)
꽤나 비슷한 풀이~
실버1으로 가니까 좀 더 고려해야할 게 많을 뿐 ⭐️조건⭐️ 을 따져야한다는 건 똑같았다! (당연)