본문 바로가기
코딩테스트 파이썬/hackerrank

Climbing the Leaderboard

by 세용용용용 2024. 9. 9.

https://www.hackerrank.com/challenges/climbing-the-leaderboard/problem?isFullScreen=true

 

Climbing the Leaderboard | HackerRank

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

www.hackerrank.com

 

나의 코드

#!/bin/python3

import math
import os
import random
import re
import sys

from collections import deque
def climbingLeaderboard(ranked, player):
    answer = []
    
    ranked = sorted(set(ranked), reverse=True)
    l = len(ranked)
    for score in player:
        while l > 0 and score >= ranked[l-1]:
            l -= 1
        answer.append(l + 1)
    
    return answer
    
if __name__ == '__main__':
    fptr = open(os.environ['OUTPUT_PATH'], 'w')
    ranked_count = int(input().strip())
    ranked = list(map(int, input().rstrip().split()))
    player_count = int(input().strip())
    player = list(map(int, input().rstrip().split()))
    result = climbingLeaderboard(ranked, player)
    fptr.write('\n'.join(map(str, result)))
    fptr.write('\n')
    fptr.close()

 

시간 복잡도

sorted(set(ranked), resverse=True) : 파이썬 정렬 알고리즘 ( 선형 로그 시간 복잡도 )
for score in player : 순위 계산 ( 선형 시간 복잡도 )
해당 알고리즘 시간복잡도는 선형 로그 시간 복잡도 ( O(n log n) )

'코딩테스트 파이썬 > hackerrank' 카테고리의 다른 글

Sherlock and Squares  (0) 2024.09.23
Append and Delete  (0) 2024.09.23
Picking Numbers  (0) 2024.09.09
Breaking the Records  (2) 2024.09.01
Number Line Jumps  (0) 2024.09.01