개발공부/algorithm
[백준][python] 1946 신입사원 - Greedy
so.py
2021. 4. 21. 22:20
- 백준 1946: 신입사원 Silver I
- 문제링크
1946번: 신입 사원
첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성
www.acmicpc.net
나의 접근
- 입력받는 서류 순위 점수, 면접 점수에 대해서 서류 순위 점수를 기준으로 오름차순으로 정렬한다.
- 정렬된 점수 배열에 대해서 탐색을 진행한다. 서류 순위 점수가 높은 -> 낮은 순서대로 탐색을 진행하며 면접 순위에 대해서도 최솟값을 비교해준다.
- 면접자의 면접 순위가 그 전에 저장된 가장 높은 순위보다 더 높을 시, minrecord를 재설정해주고 count를 늘려준다.
import sys
T = int(sys.stdin.readline())
for tc in range(T):
N = int(sys.stdin.readline())
record = [list(map(int, sys.stdin.readline().split())) for _ in range(N)]
record.sort() #1
minrecord = record[0][1] #2
count = 1
for i in range(1, N):
if record[i][1] < minrecord:
count += 1
minrecord = record[i][1]
print(count)