티스토리 뷰

#오답코드
index 라이브러리를 이용해서 쉽게 풀이하려 했지만 시간초과가 발생했다.
def solution(players, callings):
for i in callings:
index = players.index(i)
players[index], players[index-1] = players[index-1], players[index]
return players

#정답코드
# 1. 순위를 key값을 담을 map과 이름을 key값을 담을 map을 만든다.
# 2. for문을 통해 calling의 정보를 player_dic에 주입하여 순위를 뽑아낸다.
# - 뽑아낸 순위를 rank_dic에 주입하여 이름을 뽑아낸다.
# 3. player과 rank 둘다 전 후 위치를 변경한다.
def solution(players, callings):
rank_dic = {}
player_dic = {}
for num,name in enumerate(players):
rank_dic[num] = name
player_dic[name] = num
for name in callings:
cur_rank = player_dic[name]
pre_rank = player_dic[name] - 1
pre_player = rank_dic[pre_rank]
rank_dic[cur_rank], rank_dic[pre_rank] = rank_dic[pre_rank], rank_dic[cur_rank]
player_dic[name], player_dic[pre_player] = player_dic[pre_player], player_dic[name]
return list(rank_dic.values())

딕셔너리를 활용하는 방법을 배울 수 있었다.
https://school.programmers.co.kr/learn/courses/30/lessons/178871
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
'개발 > 백준, 프로그래머스' 카테고리의 다른 글
| 백준 1759번: 암호 만들기 [Python3] (0) | 2023.04.20 |
|---|---|
| 백준 6603번: 로또 [Python3] (0) | 2023.04.19 |
| 프로그래머스 옹알이(1) [Python3] (0) | 2023.02.08 |
| 백준 10026번: 적록색약 [Python3] (0) | 2023.02.01 |
| 백준 1012번: 유기농 배추 [Python3] (0) | 2023.01.28 |
댓글