반응형
https://school.programmers.co.kr/learn/courses/30/lessons/178871
구현 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
1. 정답 변수 answer 선언후 players배열로 저장합니다.
2. key를 선수명, index를 value로 저장할 name_idx_dict선언 후 빈 객체로 초기화합니다.
📔 풀이과정
1. players에 대해 for loop를 수행하며 name_idx_dict값을 저장합니다.
2. callings에 대해 loop를 수행하며 다음을 진행합니다.
2-1. O(1)로 선수 이름에 해당하는 index 값을 가져와 cur_idx에 저장합니다.
2-2. name_idx_dict를 선수들의 배열 index에 맞춰 바꿔줍니다.
2-3. cur_idx에 해당하는 선수와 cur_idx - 1에 해당하는 선수의 자리를 바꿔줍니다.
📔 정답 출력 | 반환
answer를 반환합니다.
📕 Code
📔 Python3
def solution(players, callings):
answer = players
name_idx_dict = {}
for i in range(len(players)):
p = players[i]
name_idx_dict[p] = i
for c in callings:
cur_idx = name_idx_dict.get(c)
name_idx_dict[answer[cur_idx]] = cur_idx - 1
name_idx_dict[answer[cur_idx-1]] = cur_idx
answer[cur_idx-1], answer[cur_idx] = answer[cur_idx], answer[cur_idx-1]
return answer
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.
'Algorithm > Implementation' 카테고리의 다른 글
(Python3) - 프로그래머스(연습문제): 대충 만든 자판 (0) | 2024.11.10 |
---|---|
(Python3) - 프로그래머스(연습문제): 공원 산책 (0) | 2024.11.10 |
(Python3) - 프로그래머스(PCCE 기출문제): 9번 이웃한 칸 (0) | 2024.11.10 |
(Python3) - 프로그래머스(PCCE 기출문제): 9번 / 지폐 (0) | 2024.11.08 |
(Python3) - 프로그래머스(PCCE 기출문제) : 1번 / 출력 (1) | 2024.11.07 |