알고리즘

[프로그래머스, 파이썬] 등수 매기기

hminor 2024. 3. 29. 11:54

풀이

  • 첫 번째 풀이는 2중 for문을 사용해서 
  • 특정 값과 비교 값을 비교하며 조건에 따라 특정 값의 인덱스에 따른 result의 값을 차감했는데
  • O(n2)으로 시간 효율성이 좋지 않기에 두 번째 풀이와 같이 index로 접근하게 되면 
  • 시간 효율성을 좀 더 높일 수 있다.

 

첫 번째 풀이

def solution(score):
    li = [sum(i)/2 for i in score]
    result = [len(score)]*len(score)
    for i in range(len(li)):
        for j in range(len(li)):
            if i!=j and li[i] >= li[j]: result[i]-=1
    return result

 

두 번째 풀이

def solution(score):
    li = [sum(i)/2 for i in score]
    s_li = sorted(li,reverse=True)
    return [s_li.index(i)+1 for i in li ]