[문제]
https://school.programmers.co.kr/learn/courses/30/lessons/178871
[풀이]
1. 효율성을 고려해야 하는 문제이므로 리스트에 인덱스로 접근하여 값을 변경해주어야 한다.
2. 딕셔너리를 통해 인덱스를 저장하고, 저장된 값을 수정해주면서 리스트에 인덱스로 접근해 순위를 바꿔준다.
from collections import defaultdict
def solution(players, callings):
rank = defaultdict(int)
for i, player in enumerate(players):
rank[player] += i
for call in callings:
idx = rank[call]
rank[call] -= 1
rank[players[idx-1]] += 1
players[idx], players[idx - 1] = players[idx - 1], players[idx]
return players
'코딩 테스트 > Python' 카테고리의 다른 글
신고 결과 받기 (0) | 2025.01.02 |
---|---|
공원 산책 (0) | 2024.12.31 |
[PCCP 기출문제] 2번 / 석유 시추 (2) | 2024.12.28 |
개인정보 수집 유효기간 (0) | 2024.12.24 |
바탕화면 (0) | 2024.12.23 |