코딩테스트
[프로그래머스] 달리기 경주
파퓨아뉴기니
2023. 7. 16. 12:02
[Lv.1] 정답율 39%
https://school.programmers.co.kr/learn/courses/30/lessons/178871
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
[풀이]
- 리스트를 이용하면 시간 초과로 탈락. 해쉬 테이블(딕셔너리)를 만들어서 풀어야한다.
[정답]
def solution(players, callings):
name_dict = {name:rank for rank, name in enumerate(players)}
rank_dict = {rank:name for rank, name in enumerate(players)}
for calling in callings :
rank = name_dict[calling]
name_dict[calling], name_dict[rank_dict[rank-1]] = rank-1, rank
rank_dict[rank],rank_dict[rank-1] = rank_dict[rank-1], rank_dict[rank]
return list(rank_dict.values())