728x90
Programmers
달리기 경주
https://school.programmers.co.kr/learn/courses/30/lessons/178871
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제
코드
- 시간 초과 코드
def solution(players, callings):
for i in callings:
n = players.index(i)
players[n], players[n-1] = players[n-1], players[n]
return players
- dictionary, enumerate를 활용하여 시간복잡도 줄이기
- 현재 선수의 등수 idx를 저장
def solution(players, callings):
lst = {player: i for i, player in enumerate(players)}
for j in callings:
idx = lst[j]
lst[j] -= 1
lst[players[idx-1]] += 1
players[idx-1], players[idx] = players[idx], players[idx-1]
return players
728x90
반응형
'Algorithm' 카테고리의 다른 글
[프로그래머스] [1차] 다트 게임 - 파이썬 (0) | 2024.05.08 |
---|---|
[프로그래머스] 공원 산책 - 파이썬 (0) | 2024.05.07 |
[프로그래머스] 대충 만든 자판 - 파이썬 (0) | 2024.05.07 |
[프로그래머스] 추억 점수 - 파이썬 (0) | 2024.04.30 |
[프로그래머스] 명예의 전당 (1) - 파이썬 (0) | 2024.04.30 |