상상쓰

[백준] 신입 사원 본문

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)

'Coding Test' 카테고리의 다른 글

[프로그래머스] 보석 쇼핑  (0) 2021.06.07
[백준] 단어 수학  (0) 2021.06.06
[백준] 잃어버린 괄호  (0) 2021.06.05
[프로그래머스] 기둥과 보 설치  (0) 2021.06.04
[백준] 거스름돈  (0) 2021.06.04
Comments