https://www.acmicpc.net/problem/1946
풀이 과정
- 지원자 A의 성적이 어떤 지원자 B보다 서류 심사, 면접 성적이 모두 떨어지는 경우는 선발되지 않는다라는 조건이 있으므로, 따라서 서류 심사를 기준으로 오름차순 정렬을 해 준다.
- 정렬된 리스트를 기준으로 순차적으로 지원자를 검사한다.
- 서류 심사를 기준으로 오름차순 정렬을 해주었으므로, 서류심사 성적은 무조건 이전 지원자보다 안좋다고 볼 수 있으므로, 면접 성적만을 보면 된다.
- 따라서, 이전 지원자들보다 면접 성적이 좋아야만 합격이다. 따라서, 합격한 지원자들의 면접 성적중 가장 좋은 면접 성적보다 좋은지 확인하고, 좋다면 가장 좋은 면접 성적을 갱신하고 합격 카운팅을 해준다.
- 전체 합격자의 수를 출력한다.
소스 코드
import sys
input = lambda: sys.stdin.readline().rstrip()
T = int(input())
for _ in range(T):
N = int(input())
applicants = [list(map(int, input().split())) for _ in range(N)]
applicants.sort()
max_r2 = 999999
answer = 0
for _, r2 in applicants:
if r2 < max_r2:
max_r2 = r2
answer += 1
print(answer)
'알고리즘[Python] > 백준 알고리즘' 카테고리의 다른 글
[ 2638 ] [ BFS ] 치즈 (0) | 2022.01.14 |
---|---|
[ 1058 ] [ Floyd ] 친구 (0) | 2022.01.13 |
[ 2456 ] [ 구현 ] 나는 학급회장이다 (0) | 2022.01.11 |
[ 16398 ] [ Kruskal ] 행성 연결 (0) | 2022.01.09 |
[ 2688 ] [ DP ] 줄어들지 않아 (0) | 2022.01.06 |