코딩

[HackerRank] Climbing the Leaderboard #python 본문

코딩테스트

[HackerRank] Climbing the Leaderboard #python

ssooyn_n 2021. 2. 16. 23:07

www.hackerrank.com/challenges/climbing-the-leaderboard/problem

 

Climbing the Leaderboard | HackerRank

Help Alice track her progress toward the top of the leaderboard!

www.hackerrank.com

from bisect import bisect_right
def climbingLeaderboard(ranked, player):
    answer = []
    ranked = sorted(set(ranked)) # 중복제거
   
    for score in player:
        answer.append(len(ranked)-bisect_right((ranked), score)+1)
        
    return answer

 

bisect를 이용해서 푸는 문제인데, 파이썬에는 감사하게도 bisect라는 모듈이 있어 한문장으로 끝낼 수 있다.

bisect_right(arr, x) - arr에 있는 x오른쪽에 있는 인덱스 반환
bisect_left(arr, x) - arr에 있는 x왼쪽에 있는 인덱스 반환

 

이 문제에서 주의할 점은 

1. bisect를 사용할 때는 꼭 오름차순으로 정렬된 리스트에서 사용해주어야한다.

2. 오름차순으로 정렬된 리스트에서 찾은 index 값을 내림차순일 때의 인덱스 값으로 바꾸어준다.

Comments