ABOUT ME

Today
-
Yesterday
-
Total
-
  • 1946. 신입사원
    Algorithm/Baekjoon 2023. 2. 5. 17:00

     

    처음에 문제 이해를 못했다. 적어도 하나가 다른 지원자보다 떨어지지 않는 자만 선발한다는 건 서류 심사 결과와 면접 성적이 모두 떨어지면 선발되지 않는다는 건데... 그럼 꼴찌만 아니면 되는 건가? 이러고 있었음 

     

    핵심은, A가 서류 심사 성적이 낮아도 서류 심사 성적이 더 높은 사람보다 A의 면접 성적이 높다면 선발할 수 있다는 의미이다. 반대로, A가 면접 성적이 낮아도 A보다 면접 성적이 높은 사람보다 A의 서류 성적이 더 높다면 선발할 수 있다. 

     

    그럼 어떻게 풀어야 할까?

     

    서류 심사 순위 순으로 정렬한 뒤, 면접 순위가 앞선 서류 심사 순위자의 면접 순위들보다 높다면 선발하도록 한다. 

     

    import sys
    input = sys.stdin.readline
    
    n = int(input())
    
    for _ in range(n) :
        people = int(input())
        ranks = [list(map(int, input().split())) for _ in range(people)]
        answer = 1
    
        ranks.sort()
    
        best_int = ranks[0][1]
    
        for rank in ranks :
            if best_int > rank[1] :
                best_int = rank[1]
                answer += 1
    
        print(answer)

     sort를 사용하면 서류 심사 성적 순으로 정렬된다. 

    이후 서류 심사 성적 1위의 면접 순위를 현재까지 가장 높은 면접 순위로 설정하고 아래 순위들로 내려가며 최고 면접 순위와 비교한다.

    코드는 어렵지 않지만 풀이방법을 고민해야 하는 문제였다.

    'Algorithm > Baekjoon' 카테고리의 다른 글

    19583. 싸이버개강총회  (0) 2023.02.05
    2002. 추월  (0) 2023.02.05
    12840. 창용이의 시계  (0) 2023.02.05
    10804. 카드 역배치  (0) 2023.02.05
    10825. 국영수  (0) 2023.02.05

    댓글

Designed by nanometre380.