진박사의 일상

[프로그래머스] 위클리 챌린지 6주차 본문

프로그래밍/코딩테스트 공부

[프로그래머스] 위클리 챌린지 6주차

진박사. 2021. 9. 8. 02:52

문제 : 복싱선수 정렬하기

 

def solution(weights, head2head):
    answer = []
    win_rate = [man.count('W')/(len(man)-man.count('N')) if len(man)-man.count('N') != 0 else 0 for man in head2head]
    win_bigger_cnt = [len(["" for x, y in enumerate(man) if y == 'W' and weights[x] > weights[idx]]) for idx, man in enumerate(head2head)]
    
    print(win_rate)
    print(win_bigger_cnt)
    print(weights)
    
    return sorted(list(range(1,len(weights)+1)),key=lambda x: (-win_rate[x-1], -win_bigger_cnt[x-1], -weights[x-1], x))

후기 : list comprehension 풀 활용 + 람다식을 활용하여 sort 하는 기능을 잘 활용