[프로그래머스] 인사고과 (파이썬)

dongEon·2023년 3월 27일
0

문제링크 : https://school.programmers.co.kr/learn/courses/30/lessons/152995

난이도 : LV3

문제해결

  • score을 근무태도를 내림차순으로 정렬한다. 같은 근무태도 점수에서는 동료 평가 점수를 오름차순으로 정렬한다.
  • 인센티브를 받지 못하는 사람들을 for 문 순회 한번으로 거를 수 있게된다.
  • 전에 근무태도 점수가 높았던 그룹의 동료평가 점수의 최대값보다 작은 사람은 전부 받지 못하므로.

소스코드

def solution(scores):
    wanho = scores[0]
    wanho_score = sum(wanho)
    answer = 1
    scores.sort(key=lambda x:(-x[0], x[1]))
    tmp = 0
    for score in scores:
        if wanho[0] < score[0] and wanho[1] < score[1]:
            return -1
        
        if wanho_score < sum(score) and tmp <= score[1]:
            answer += 1
            tmp = score[1]
    
    return answer
        
profile
반갑습니다! 알고리즘 문제 풀이 정리 블로그 입니다. 피드백은 언제나 환영입니다!

0개의 댓글