본문 바로가기
프로그래머스/Lv.1

달리기 경주 - Python, 딕셔너리

by 아찌방 2024. 11. 25.

 

 

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

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

 

풀이 - 나의 생각

딕셔너리를 통해 플레이어의 인덱스를 저장해두고

 

불린 플레이어와 앞의 플레이어를 딕셔너리에서 찾아

 

바꿔줍니다.

 

가장 당황스러운 부분은

 

players[now_index-1], players[now_index] = players[now_index], players[now_index-1]

 

이게 된다고?????

 

코드

 

def solution(players, callings):
    index_player = {player:i for i, player in enumerate(players)}
    
    for player in callings:
        now_index = index_player[player]
        if now_index != 0:
            pre_player = players[now_index-1] # 불린 선수 앞의 선수
            players[now_index-1], players[now_index] = players[now_index], players[now_index-1]
            
            index_player[pre_player] += 1
            index_player[player] -= 1
    return players

 

 

 

 

 

 

 

다음에 또 봐요

 

728x90