[프로그래머스] 등수 매기기

해피데빙·2023년 1월 8일
0

코딩테스트

목록 보기
39/52
post-custom-banner

출처 https://school.programmers.co.kr/learn/courses/30/lessons/120882#

원본 배열 순서대로 sort 후 순서를 넣는 방법

  1. sort한 배열에서 원본 배열의 요소의 인덱스를 찾아서 배열에 넣기
    : 여기서는 원본의 형태가 없어져서 찾기 어려움
    -> 평균값이 아니라 더한 값으로 sort를 해도 순서는 같다
  2. 원본 배열에 새롭게 계산한 배열의 값을 넣어서 그걸 토대로 찾기

내 풀이

def solution(score):
    answer = []
    newlist = sorted(list(map(lambda x: x[0]+x[1],score)), 
    reverse=True) 
    //각 원소의 합으로 내림정렬
    for s in score:
        answer.append(newlist.index(s[0]+s[1])+1)
    //원래 배열순으로 정렬된 배열에서 값을 찾아서 정답에 추가하기
    return answer

다른 풀이

def solution(score):
    a = sorted([sum(i) for i in score], reverse = True)
    return [a.index(sum(i))+1 for i in score]
  • append 사용하는 경우 바로 []안에 값을 넣으면 해결된다
  • 배열 안을 다 더하는 거라면 sum을 써도 된다
  • map+list를 쓸 거면 []안에 반복문 + 일괄 처리할 함수를 넣어도 된다
profile
노션 : https://garrulous-gander-3f2.notion.site/c488d337791c4c4cb6d93cb9fcc26f17
post-custom-banner

0개의 댓글