-
[위클리 챌린지] 6주차알고리즘/프로그래머스 2021. 9. 11. 19:29
https://programmers.co.kr/learn/courses/30/lessons/85002
- 풀이
정렬 기준 데이터에 대한 리스트를 만들어서 다중정렬을 이용해 조건에 맞게 정렬해주면 된다.
def solution(weights, head2head): answer = [] data = [] for h in range(len(head2head)): w_win, win, lose = 0, 0, 0 for i in range(len(head2head[h])): if head2head[h][i] == 'W': win += 1 if weights[i] > weights[h]: w_win += 1 elif head2head[h][i] == 'L': lose += 1 a = 0 if win+lose==0: a = 0 else: a = win/(win+lose) data.append((a, w_win, weights[h], h+1)) data = sorted(data, key = lambda x : (-x[0], -x[1], -x[2], x[3])) for i in data: answer.append(i[3]) return answer
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[완전탐색] 모의고사 / 소수 찾기 / 카펫 (0) 2021.09.15 [스택/큐] 기능개발 / 주식가격 (0) 2021.09.12 [위클리 챌린지] 5주차 (0) 2021.09.11 [정렬] K번째수 / 가장 큰 수 / H-Index (0) 2021.09.05 [해시] 완주하지 못한 선수 / 전화번호 목록 / 위장 (0) 2021.09.04