Programmers_LV0_등수매기기

jkky98·2023년 2월 14일
0

CodingTraining

목록 보기
13/61

ans변수에 일단 두 점수의 합으로 리스트를 재구성 한 후 sorted()를 사용하여 정렬된 객체를 다시 얻는다. 그리고 count를 초기화하고 prev값을 동떨어진 값으로 초기화하고 rank배열을 만든다. 그리고 for문을 통해 어떤상황이든 count를 내려주며, rank배열에 count값을 부여하고 만약 이전값과 같다면 업데이트될 rank배열의 이전 인덱스값으로 부여한다. 그리고 rank와 p_ind배열을 통해 딕셔너리로 컴프리핸션하여 정보 딕셔너리를 만들고 ans배열을 for문으로 다시 돌며 info에 부여된 랭크값으로 업데이트시킨다.

def solution(score):
    ans = []
    for i in score:
        ans.append(sum(i))
        
    p_ind = sorted(ans)
    
    count = len(p_ind)+1
    prev = -100
    rank = [0] * len(p_ind)
    
    for index, i in enumerate(p_ind):
        count -= 1
        if prev == i:
            rank[index] = rank[index-1]
        else:
            rank[index] = count
        
    info = {x:y for x,y in zip(p_ind, rank)}
    for index, i in enumerate(ans):
        ans[index] = info[i]
        
        
    return ans
profile
자바집사의 거북이 수련법

0개의 댓글