Coding Test
[백준] 신입 사원
상상쓰
2021. 6. 6. 00:47
https://www.acmicpc.net/problem/1946
1946번: 신입 사원
첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성
www.acmicpc.net
동석차 없이 1위부터 N위까지 결정되므로 서류심사 성적을 index 로 두고 면접 성적만을 가지고 비교하여 선발할 수 있는 신입사원을 구하면 된다.
처음에는 서류심사 성적과 면접 성적을 하나의 배열로 해서 2차원 배열을 서류심사 기준으로 정렬해서 풀었는데 시간 초과가 났다. 그래서 서류심사 성적을 기준으로 sort() 를 사용하지 않고 구했는데 시간 초과가 났다. input() 을 sys.stdin.readline() 로 대체하니 통과했다.
import sys
T = int(sys.stdin.readline())
for i in range(T):
N = int(sys.stdin.readline())
applicant = [0] * N
for j in range(N):
a, b = map(int, sys.stdin.readline().split())
applicant[a-1] = b
y = applicant[0]
answer = 1
for k in range(1, N):
if y > applicant[k]:
answer = answer + 1
y = applicant[k]
print(answer)