https://school.programmers.co.kr/learn/courses/30/lessons/152995#
정렬 문제에 크게 당했다.
어느 것을 오름차순으로 할지, 내림차순으로 할지. 잘 생각해야 하는 문제.
이와는 별도로, 정렬을 하면서 원래 찾아야 할 놈의 위치가 애매해진다.
이에 대한 처리도 고려해야 한다.
아무튼, 구하는 1명만 구하면 되는 애라서 가능한 풀이이다.
def solution(scores):
answer = 1
inho_att, inho_comp = scores[0]
inho_sum = inho_att + inho_comp
# 여기서 동료 점수를 내림차순으로 하면 안된다! 오름차순이어야한다.
# 근무 태도가 최고점인 사람들 중, 동료 점수를 점점 높여서 커트라인을 형성한다.
# 그래야, 최고점 근무태도 중 최고점 동료점수를 뽑자마자 다음으로 넘어가니까.
# 즉, 그 다음부턴 최고점 근무태도가 아니므로, 동료점수 지는건가요? 면 탈락!
# 그와 별도로 인호가 점수가 낮으면 탈락시켜야 한다. 정렬이면 어디있나 몰라서.
scores.sort(key = lambda x: (-x[0], x[1]))
max_comp = 0
for s in scores:
cur_att, cur_comp = s
if inho_att < cur_att and inho_comp < cur_comp:
return -1
if cur_comp >= max_comp:
max_comp = cur_comp
if cur_att + cur_comp > inho_sum:
answer += 1
return answer
'알고리즘 & PS' 카테고리의 다른 글
[프로그래머스] 수식 복원하기 (Lv 3) (0) | 2024.11.01 |
---|---|
[프로그래머스] 디펜스 게임 (Lv 2) (1) | 2024.11.01 |
[프로그래머스] 단어 변환 (Lv 3) (0) | 2024.10.29 |
[프로그래머스] 가장 먼 노드 (Lv 3) 2트 (0) | 2024.10.28 |
[프로그래머스] 의상 (Lv 2) (1) | 2024.10.28 |