반응형
문제 설명
제한사항
입출력 예
Solution.py
이 문제를 풀기 위해 2개의 딕셔너리를 활용했는데
하나는 달리기 순위를 key로 갖고 선수 이름을 value로 갖는 rank_Dic
다른 하나는 선수 이름을 key로 갖고 달리기 순위를 value로 갖는 player_Dic 으로 만들었습니다.
두 개의 딕셔너리를 활용하는 이유는 아래의 코드를 보면 이해되겠지만, 순위가 변경될 때 서로의 value값을 참조하기 때문입니다.
서로의 value값을 참조하며 callings 배열에 있는 선수들 정보를 가지고 이름을 불린 선수와 그 선수의 앞에 있는 선수를 서로 변경하여 마지막으로 result 에 맞도록 rank_Dic의 value들을 반환합니다.
정답 코드
def solution(players, callings):
rank_Dic = {}
player_Dic = {}
for i, p in enumerate(players):
rank_Dic[i + 1] = p
player_Dic[p] = i + 1
for cur_player in callings:
cur_rank = player_Dic[cur_player]
front_rank = cur_rank - 1
front_player = rank_Dic[front_rank]
rank_Dic[front_rank], rank_Dic[cur_rank] = rank_Dic[cur_rank], rank_Dic[front_rank]
player_Dic[front_player], player_Dic[cur_player] = player_Dic[cur_player], player_Dic[front_player]
return list(rank_Dic.values())
'◼ 코딩테스트 > 구현 (Implementation)' 카테고리의 다른 글
[Python/파이썬] 프로그래머스 Lv2 - 우박수열 정적분 (0) | 2023.04.24 |
---|---|
[Python/파이썬] 프로그래머스 Lv1 - 바탕화면 정리 (0) | 2023.04.14 |
[Python/파이썬] 프로그래머스 Lv2 - 숫자 나누기 (유클리드호제법) (0) | 2023.04.04 |
[Python/파이썬] 프로그래머스 Lv2 - 줄 서는 방법 (2) | 2023.03.13 |
[Python/파이썬] 프로그래머스 Lv2 - 수식 최대화 (카카오 인턴쉽) (0) | 2023.03.10 |