본문 바로가기

알고리즘

python 백준1946 신입사원(BOJ1946 )

문제링크 : https://www.acmicpc.net/problem/1946

 

1946번: 신입 사원

첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성

www.acmicpc.net

시간초과가 나서 sys를 임포트 했다

일단 문제자체를 이해하는것도 조금 어려웠는데 직접 써가면서 체크해보니깐 이해가 됐다

그리고 sort를 쓰면 생각보다 간단하게 풀리는 문제였는데 마지막에 통과점수를 바꿔주는걸 빼먹어서 조금 헤맸다

import sys

input = sys.stdin.readline

t = int(input())

for _ in range(t):
  applicantCount = int(input())
  applicantGrade = []
  for _ in range(applicantCount):
    applicantGrade.append(list(map(int, input().split())))
  applicantGrade.sort()

  passGrade = applicantGrade[0][1]
  passCount = 1
  
  for i in range(1, applicantCount):
    if applicantGrade[i][1] < passGrade:
      passCount += 1
      passGrade = applicantGrade[i][1]
  print(passCount)