반응형
문제
구현
이 문제는 효율성 테스트는 없지만 그냥 배열로 구현하면 시간 초과가 뜬다.
그래서 dict를 사용해서 구현해야 한다.
dict에 이름이 키, index가 value 인 구조로 players 리스트를 가져온다.
그리고 callings 리스트를 돌면서 값을 swap 해주면 된다.
dict로 바꿔줘야 된다는 것만 주의하면 레벨 1이라서 쉽게 구현할 수 있다.
코드
def solution(players, callings):
pdic={}
for i in range(len(players)):
pdic[players[i]]=i
for call in callings:
idx = pdic[call]
temp = players[idx-1]
players[idx-1], players[idx] = players[idx], players[idx-1]
pdic[call], pdic[temp] = idx-1, idx
return players
다른 풀이
다른 풀이까지는 아니지만 dict를 조금 더 파이써닉하게 생성하는 코드를 써봤다.
pdict = {key: i for i, key in enumerate(players)}
key를 key로, i(index)를 value로 써주었다.
반응형
'Coding Test > Python' 카테고리의 다른 글
[Codility] Pi Code Challenge Python (1) | 2023.04.14 |
---|---|
[프로그래머스] 방의 개수 Python 풀이 (1) | 2023.04.13 |
[프로그래머스] 추억 점수 Python 풀이 (0) | 2023.04.06 |
[프로그래머스] 바탕화면 정리 Python 풀이 (0) | 2023.04.06 |
[프로그래머스] 덧칠하기 Python 풀이 (0) | 2023.04.06 |
댓글