[백준] 1946번 신입사원

거북이·2023년 2월 1일
0

백준[실버1]

목록 보기
14/67
post-thumbnail

💡문제접근

  • 문제를 자세히 보니 입력값으로 나온 데이터는 각각의 지원자의 서류심사 성적, 면접 성적의 순위다. 낮을수록 좋다는 것을 뒤늦게 깨달은 것이다. 서류심사 성적을 기준으로 오름차순 정렬한 다음 면접 성적을 기준으로 다른 모든 지원자와 비교했을 때 채용 기준을 충족한다면 카운팅을 해줬다.
  • 이중 for문을 사용하면 시간초과가 발생할 가능성이 높을 것 같아서 단일 for문을 이용했는데도 시간이 좀 오래 걸리는 것 같다.

💡코드(메모리 : 63832KB, 시간 : 4436ms)

import sys
input = sys.stdin.readline

T = int(input().strip())
for _ in range(T):
    cnt = 0
    N = int(input().strip())
    li = []
    for _ in range(N):
        a, b = map(int, input().strip().split())
        li.append([a, b])
    sorted_li = sorted(li, key = lambda x : x[0])
    temp = sorted_li[0][1]
    for i in range(1, len(sorted_li)):
        if temp > sorted_li[i][1]:
            temp = sorted_li[i][1]
            cnt += 1
    print(cnt + 1)

💡소요시간 : 15m

0개의 댓글