반응형
코딩테스트 연습 - 인사고과 | 프로그래머스 스쿨 (programmers.co.kr)
<문제 풀이>
- 점수의 합으로 석차를 확인하기 때문에 점수의 합이 완호의 점수보다 이하인 경우는 확인할 필요가 없다.
- 두 가지 점수중 하나를 내림 차순, 나머지는 오름차순으로 정렬한다.
- 한 가지 점수를 내림 차순으로 정렬했다면 나머지 하나의 점수는 계속 커져야 인센티브를 받을 수 있는 조건이 성립한다.
<Code>
def solution(scores):
answer = 1
wh = scores[0]
wh_score = sum(wh)
scores.sort(key=lambda x: (-x[0], x[1])) # 근무 태도 점수 내림차순으로 정렬하여 추후 동료 평가 점수로만 비교
check = 0
for score in scores:
if wh_score >= sum(score): # 완호의 점수보다 작은 경우 pass
continue
if wh[0] < score[0] and wh[1] < score[1]: # 완호가 인센티브를 받지 못하는 경우
return -1
if check <= score[1]: # score[1]의 값이 check 보다 작은 경우는 인센을 받지 못하는 경우
check = score[1]
answer += 1 # 석차 카운트
return answer
※ 잘못된 점, 개선점 등이 있다면 언제든 댓글로 알려주시면 감사하겠습니다.
반응형
'Alogorithm > programmers' 카테고리의 다른 글
[programmers] Lv2 무인도 여행 - Python (0) | 2023.03.28 |
---|---|
[programmers] Lv2 호텔 대실 - Python (0) | 2023.03.28 |
[programmers] Lv2 광물 캐기 - Python & Java (0) | 2023.03.24 |
[programmers] Lv3 고고학 최고의 발견 - Python (0) | 2023.03.21 |
[programmers] Lv3 풍선 터트리기 - Python (0) | 2023.03.20 |