컴퓨터공학/알고리즘 문제 풀이

[프로그래머스] 달리기 경주

TaeGyeong Lee 2023. 4. 15. 19:13

접근

  • 처음에 O(N^2)로 솔루션을 작성했지만 당연히 TLE
  • 해시 자료구조를 사용하여 문제를 O(N)으로 풀어야 한다.

 

문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/178871

 

솔루션

def solution(players, callings):    
    
    Hash = {}
    for index, value in enumerate(players):
        Hash[value] = index
    
    for index, value in enumerate(callings):
        rank = Hash[value]
        
        # swap in players
        players[rank-1], players[rank] = players[rank], players[rank-1]
        
        # swap rank in Hash
        Hash[value] = rank-1
        Hash[players[rank]] = rank
        
    return players

 

'컴퓨터공학 > 알고리즘 문제 풀이' 카테고리의 다른 글

[백준] 2839 설탕 배달  (0) 2023.07.02
[프로그래머스] 게임 맵 최단거리  (0) 2023.04.16
[LeetCode] 71. Simplify Path  (0) 2023.04.12
[LeetCode] 139. Word Break  (0) 2023.04.10
[LeetCode] 62. Unique Paths  (0) 2023.04.10