개인 공부 공간/Algorithm

BOJ(백준) 1946번 신입 사원 파이썬

Hoon Kang 2021. 3. 22. 22:25
 

1946번: 신입 사원

첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성

www.acmicpc.net


코드

import sys
r=sys.stdin.readline
T=int(r())
for _ in range(T):
    cnt=0
    N=int(r())
    l=[[0,0] for _ in range(N)]
    for i in range(N):
        a,b=map(int,r().split())
        l[i][0]=a
        l[i][1]=b
    l.sort(key=lambda x:(x[0]))
    cnt=1
    s=l[0][1]
    for i in range(1,N):
        if l[i][1] < s:
            s=l[i][1]
            cnt+=1
    print(cnt)

 

해설

지원자들의 서류 점수를 기준으로 정렬한 후 서류 점수가 1등인 지원자의 면접 순위를 s 에 저장하였다. 그 후 지원자들의 점수가 적재되어 있는 l 을 포문으로 순회하며 s 보다 높은 순위의 지원자가 있으면 cnt 에 1을 더한 후 s 값을 그 지원자의 면접 순위로 대체하였다.

 

결과

신입사원결과.PNG