반응형
파이썬으로 코딩테스트 연습 :: Programmers - 달리기 경주
https://school.programmers.co.kr/learn/courses/30/lessons/178871
1
2
3
4
5
6
7
8
9
10
11
|
def solution(players, callings):
p1 = {i+1 : string for i,string in enumerate(players)}
p2 = {string : i+1 for i,string in enumerate(players)}
for i in callings :
order = p2[i]
p1[order], p1[order-1] = p1[order-1], i
p2[i], p2[p1[order]] = order-1, order
return list(p1.values())
|
cs |
처음에는 그냥 for문 돌리면서 list 자체에서 pop(), remove() 하는 식으로 코드를 짰으나
그럼 7~13번에서 시간초과로 실패한다.
이 문제는 불린 사람이 원래 몇위였는지도 알아야하고, 이전 순위 사람과 순위를 바꿔주어야 하기 때문에 dict을 두 개 쓰는게 포인트다.
반응형
'코딩테스트 연습 > 프로그래머스' 카테고리의 다른 글
[Python - 프로그래머스] 대충 만든 자판 (0) | 2023.07.07 |
---|---|
[Python - 프로그래머스] 혼자서 하는 틱택토 (0) | 2023.07.07 |
[Python - 프로그래머스] 두 원 사이의 정수 쌍 (0) | 2023.06.15 |
[Python - 프로그래머스] 요격시스템 (0) | 2023.06.15 |
[Python - 프로그래머스] 코딩테스트 연습 > 탐욕법(Greedy) > 섬 연결하기 (0) | 2023.01.26 |