백준(1946) - 신입사원 Python
백준(1946) - 신입사원
문제풀이 : 그리디 알고리즘, 파이썬
해결방법
지원자의 서류 성적와 면접 성적이 다른 지원자의 서류 성적과 면접 성적과 비교해서 둘다 떨어지는 경우를 count 하면 된다.
정렬하게되면 순서가 바뀌게 되므로 처음 입력받을 때 기존의 번호도 리스트에 넣었지만, 결과적으로 사용하진 않았다. -> 처음 접근 방법으로 set()에 해당하는 번호를 추가해나가는 방법을 하려고 했었다.
- 서류 등수기준으로 정렬한다.
- 면접 점수가 이전의 신입사원 등수보다 높다면 cnt를 증가시킨다.
- 순차적으로 제일 낮은 면접등수를 확인하면서 for문을 진행하면 된다.
import sys
input = sys.stdin.readline
m = int(input())
for _ in range(m):
n = int(input())
rank = []
for i in range(n):
surue, meet = map(int, input().split())
rank.append((i, surue, meet))
rank.sort(key=lambda x: x[1])
cnt = 0
min_meet = rank[0][2]
for i in range(1, n):
if rank[i][2] > min_meet:
cnt += 1
min_meet = min(min_meet, rank[i][2])
print(n - cnt)
댓글남기기