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

김영민·2024년 6월 27일
0

코딩테스트

목록 보기
1/32
post-thumbnail

(출처 - 프로그래머스)

핵심 아이디어

  • 이 문제의 핵심은 딕셔너리 값으로 찾는 것이다.
  • index로 찾을 경우 시간 복잡도가 O(n) 이기 때문에 for 문 안에서 돌면 O(n^2)가 된다.

코드

def solution(players, callings):

    
    player_dict = {player: idx for idx,player in enumerate(players)}
    
    for call_name in callings:
        idx = player_dict[call_name]
        players[idx-1],players[idx] = players[idx],players[idx-1]
        player_dict[players[idx]] = idx
        player_dict[players[idx-1]] = idx-1

    
    return players

0개의 댓글