알고리즘/정렬
[Python] 백준 1946 신입 사원
JayAlex07
2023. 1. 9. 20:35
🧑💻 [Python] 백준 1946 신입 사원
Silver 1 - 정렬
서류 성적과 면접 성적 중 적어도 하나가 다른 지원자보다 떨어지지 않으면 선발을 한다
즉 서류 성적, 면접 성적 모두, 다른 지원자보다 낮으면 떨어지는 것이다
문제 풀이
- 먼저 서류 성적 기준으로 정렬을 한다
- 그리고 면접 성적들을 비교를 한다
- 제일 처음 기준을 서류 면접에서 1등 한 사람 기준으로 간다
- 서류 면접 1등 사람 기준(A)으로 면접 성적이 더 우수하다면, 그 사람도 (B) 신입 사원으로 뽑힐 수 있다
- 그 다음부터는 B의 면접 성적 기준으로 비교를 한다. (이렇게 계속 면접 성적 기준을 바꿔주면서 비교를 하며 뽑힐 수 있는 신입 사원의 수를 구한다)
- 정렬한 기준, 제일 앞에 있는 사람은 무조건 신입사원으로 뽑힌다. 서류가 1등이다.
코드
T = int(input())
for _ in range(T):
N = int(input())
rank = []
for n in range(N):
rank.append(tuple(map(int, input().split())))
rank.sort()
cnt = 1
score = rank[0][1]
for r in range(1, len(rank)):
if rank[r][1] < score:
cnt += 1
score = rank[r][1]
print(cnt)