알고리즘

[Python | 프로그래머스 | Lv_3] 인사고과

deedee2 2024. 4. 21. 22:44
728x90

😄 아이디어

1. _!a, b!_ 의 값 중 하나는 내림차순, 남은 하나는 오름차순으로 정렬한다. 👉 코드에서는 a를 내림차순 b를 오름차순 정렬

2. a의 값이 내림차순으로 정렬되고 있기에 탐색 중 갱신되는 _!maxB!_의 값보다 작은 b가 탐색되면 인센티브를 받지 못하는 사원이다.

✔️ 코드

def solution(scores):
    answer = 1
    wanho = scores[0]
    rs = sorted(scores, key = lambda x: (-x[0], x[1]))
    maxB = 0
        
    for score in rs:
        if (score[0] > wanho[0] and score[1] > wanho[1]):
            return -1
        
        if score[1] >= maxB:
            maxB = score[1]
            
            if wanho[0] + wanho[1] < score[0] + score[1]:
                answer += 1
    return answer

✔️ 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/152995#