티스토리 뷰

www.acmicpc.net/problem/1946

 

1946번: 신입 사원

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

www.acmicpc.net

import sys

T = int(sys.stdin.readline())

for _ in range(T):
  N = int(sys.stdin.readline()) 
  s = []
  result = 1

  for _ in range(N):
    s.append(list(map(int, sys.stdin.readline().split())))

  s = sorted(s)
  check = s[0][1]

  for i in range(1, N):
    if check > s[i][1]:
      check = s[i][1]
      result += 1

  print(result)

 

서류 심사 또는 면접 성적 둘 중 하나로 오름차순 정렬한 후에 나머지 요소만 비교하기!!

둘 다 모두 비교하면 시간 초과...

앞의 성적 순위보다 높으면 채용 가능하므로 앞의 성적들 중 최소 순위 저장해두기

최소 순위와 비교해서 높으면(숫자가 더 작으면) +1

 

공지사항
최근에 올라온 글
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함