https://school.programmers.co.kr/learn/courses/30/lessons/178871
def solution(players, callings):
answer = []
for c in callings:
idx = players.index(c)
players.remove(c)
players.insert(idx-1,c)
return players
거저 먹으려고 했지만, 시간초과가 난다..🥲
다른 방법을 시도해야 한다. 아마 "해시"문제로 풀어야 하는 것 같다.
def solution(players, callings):
# 초기 순위를 인덱스로 딕셔너리 생성 --> 이름: 순위
players_ranking = {player: int(idx) for idx, player in enumerate(players)}
for c in callings:
current_rank = players_ranking[c] # 호명한 선수의 현재 순위
# 호명된 선수 순위 올리기
players_ranking[c] -= 1
# 밀린선수 순위 낮추기
players_ranking[players[current_rank - 1]] += 1
# players 배열에서 선수들의 순위 바꿔주기
players[current_rank - 1], players[current_rank] = c, players[current_rank - 1]
return players