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

"""
출처:프로그래머스,
https://school.programmers.co.kr/learn/courses/30/lessons/152995
"""
# 풀이 과정
def solution(scores):
n = scores[0]
num = n[0] + n[1]

s = sorted(scores, key=lambda x: (-x[0], x[1]))

check = []

for i in range(len(s)):
if s[i][0] + s[i][1] > num:
if s[i][0] > n[0] and s[i][1] > n[1]:
return -1

elif len(check) == 0: # 첫번째의 경우 인센티브 못받을 경우x
check.append([s[i][0], s[i][1]])
v = s[i][1]
w = s[i][0]

else:
if s[i][0] != w: # 더 작아지는 순간
if v > s[i][1]: # 이전 첫번째 성과가 무조건 높기에 두번째는 그 이전보다 높아야 인센티브 가능!
continue
else:
check.append([s[i][0], s[i][1]])
v = s[i][1]
w = s[i][0]
else:
check.append([s[i][0], s[i][1]])
v = s[i][1] # 첫번쨰가 같다면 두번쩨는 뒤로 갈수록 점수가 최소 높거나 같기때문에 갱신

return len(check) + 1