728x90
SMALL
문제
https://www.acmicpc.net/problem/1946
1946번: 신입 사원
첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성
www.acmicpc.net
풀이
합격하기 위해서는 서류 등수나 면접 등수 중 모두가 다른 합격자보다 커서는 안된다!
우선 서류점수를 기준으로 정렬하고 이전 합격자의 면접점수보다 점수가 높은사람(=등수가 낮은사람)만 합격시키도록 하면 된다.
import sys
T=int(sys.stdin.readline())
for _ in range(T):
N=int(sys.stdin.readline())
test = []
for _ in range(N):
test1, test2=map(int, sys.stdin.readline().split()) #test1=서류점수 test2=면접점수
test.append([test1, test2])
test=sorted(test) # 서류점수를 기준으로 정렬
min=test[0][1] # min: 합격자중 가장 높은 면접등수 / 서류점수가 가장 높은시감의 면접점수로 초기화
cnt=1
for test1,test2 in test:
if(test2<min): #서류점수가 이전 사람보다 낮은 사람은, 이전 사람들의 최고 면접점수보다 면접점수가 높아야 합격
cnt+=1
min=test2
print(cnt)
덧)
처음엔 input()으로 입력받았는데 시간초과로 readline를 사용했다..
T=int(input())
for _ in range(T):
N=int(input())
test = []
for _ in range(N):
test1, test2=map(int, input().split())
test.append([test1, test2])
test=sorted(test)
min=test[0][1]
cnt=1
for test1,test2 in test:
if(test2<min):
cnt+=1
min=test2
print(cnt)
728x90
LIST
'코테공부 > python 백준' 카테고리의 다른 글
파이썬 백준 10814 : 나이순 정렬 (0) | 2024.03.19 |
---|---|
파이썬 백준 2751: 수 정렬하기 (0) | 2024.03.19 |
파이썬 백준 : 1931 회의실 배정 (0) | 2024.03.19 |
파이썬 백준 11650 : 좌표 정렬하기 (0) | 2024.03.18 |
파이썬 백준 11399 : ATM (0) | 2024.03.18 |