지금은마라톤중

[백준] 1946번 신입 사원 본문

STUDY/Python 알고리즘

[백준] 1946번 신입 사원

달리는중 2024. 5. 29. 13:50

 

이 문제는 문제 해석을 하는데 어려웠습니다. 문제를 정확히 이해해야 풀이가 가능했습니다.

 

접근법

- 서류와 면접 둘 중 하나라도 뒤쳐지지 않아야한다 → 하나를 기준으로 잡고 하나를 비교

- 서류를 기준으로 정렬 후 면접의 등수를 비교

- 서류 1등의 면접 등수 활용
   → 서류 1등을 제외한 모든 참가자는 서류 1등보다 서류가 뒤쳐지므로 면접에서 더 좋은 등수를 맞아야지 합격!!
- 또한 커트라인을 갱신하여 커트라인을 조정 ( 서류 기준 정렬이기 때문에 반복문에서 서류 등수가 높은 순부터 나오기 때문)

 

 

import sys
input = sys.stdin.readline

t = int(input())
for _ in range(t):
    n = int(input())
    cnt = 1
    
    scores = [ list(map(int,input().split())) for _ in range(n)]
    scores.sort()   # 서류를 기준으로 정렬 
    
    cut_line = scores[0][1] # 서류 1등의 면접 등수
    
    
    for i in scores:
        if i[1] < cut_line :
            cnt +=1
            cut_line = i[1]  # 합격 커트라인 업데이트
    
    print(cnt)

 

'STUDY > Python 알고리즘' 카테고리의 다른 글

[백준] 16953번 A → B  (0) 2024.05.29
[백준] 1439번 뒤집기  (0) 2024.05.29
[이론] 탐욕적(그리디) 알고리즘  (0) 2024.05.24
[백준] 1459번 걷기  (0) 2024.05.22
[백준] 2891번 카약과 강풍  (0) 2024.05.18
Comments