본문 바로가기
알고리즘/정렬

[Python] 백준 1946 신입 사원

by JayAlex07 2023. 1. 9.

🧑‍💻 [Python] 백준 1946 신입 사원

Silver 1 - 정렬

 

서류 성적과 면접 성적 중 적어도 하나가 다른 지원자보다 떨어지지 않으면 선발을 한다

즉 서류 성적, 면접 성적 모두, 다른 지원자보다 낮으면 떨어지는 것이다

 

문제 풀이

  • 먼저 서류 성적 기준으로 정렬을 한다
  • 그리고 면접 성적들을 비교를 한다
    • 제일 처음 기준을 서류 면접에서 1등 한 사람 기준으로 간다
    • 서류 면접 1등 사람 기준(A)으로 면접 성적이 더 우수하다면, 그 사람도 (B) 신입 사원으로 뽑힐 수 있다
    • 그 다음부터는 B의 면접 성적 기준으로 비교를 한다. (이렇게 계속 면접 성적 기준을 바꿔주면서 비교를 하며 뽑힐 수 있는 신입 사원의 수를 구한다)
  • 정렬한 기준, 제일 앞에 있는 사람은 무조건 신입사원으로 뽑힌다. 서류가 1등이다.

 

코드

T = int(input())

for _ in range(T):
    N = int(input())
    rank = []
    
    for n in range(N):
        rank.append(tuple(map(int, input().split())))
    
    rank.sort()
    cnt = 1
    score = rank[0][1]

    for r in range(1, len(rank)):
        if rank[r][1] < score:
            cnt += 1 
            score = rank[r][1]

    print(cnt)