본문 바로가기
알고리즘/문제풀이

[BOJ][Python] #1946 신입사원

by camezii 2022. 5. 16.

 

 

풀이

1. 서류심사 순위로 오름차순 나열한다.

2. 서류심사 순위가 가장 높은 지원자 A의 면접성적 순위보다 낮은 지원자 B는 A보다 순위가 높은 성적이 없으므로 탈락한다.

>> A의 면접점수 순위를 max값으로 설정한 후에 다른 지원자의 순위를 순서대로 비교해가며 순위가 더 낮은 지원자의 수(cnt)를 계산한다. cnt의 값이 올라가면서 max값은 합격한 다른 지원자의 면접점수 순위로 바뀌게 된다.

 

>> 코드

import sys

n = int(input())
for i in range(n):
    score = []
    m = int(input())
    for i in range(m):
        first, sec = map(int, sys.stdin.readline().split())
        score.append([first, sec])
    score.sort()

    cnt = 1
    max = score[0][1]
    for i in range(1, m):
        if max > score[i][1]:
            cnt += 1
            max = score[i][1]
    print(cnt)

>> input으로 값을 입력받을 시, 시간초과의 결과가 뜨는데, sys.stdin.readline을 사용하여 입력받으면 해결된다 🙂

 

'알고리즘 > 문제풀이' 카테고리의 다른 글

[BOJ][Python] #13164 행복 유치원  (0) 2022.07.24
[BOJ][Python] #1543 문서 검색  (0) 2022.05.18
[BOJ][Python] #16953 A → B  (0) 2022.05.17
[LeetCode] #35 Search Insert Position  (0) 2022.03.17
[LeetCode] #9 Palindrome Number  (0) 2022.03.16

댓글