코딩
[HackerRank] Climbing the Leaderboard #python 본문
www.hackerrank.com/challenges/climbing-the-leaderboard/problem
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 값을 내림차순일 때의 인덱스 값으로 바꾸어준다.
'코딩테스트' 카테고리의 다른 글
[프로그래머스] 메뉴리뉴얼 .py (0) | 2021.02.21 |
---|---|
[프로그래머스] 광고삽입 .py (0) | 2021.02.18 |
[프로그래머스] 합승택시요금 .py (0) | 2021.02.18 |
[프로그래머스] 큰 수 만들기 .py (0) | 2021.02.17 |
[HackerRank] ArrayManipulation #Python (0) | 2021.02.16 |
Comments