Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

ol-rlo-zl

[프로그래머스 lv1] 달리기 경주 - 파이썬(Python) 본문

Programmers(Python)

[프로그래머스 lv1] 달리기 경주 - 파이썬(Python)

ol-rlo-zl 2023. 4. 17. 19:53

문제

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

풀이 (dict 이용) 및 결과

def solution(players, callings):

    ranks = dict(zip(players,range(len(players))))
    
    for c in callings: # c: 따라잡은 사람
        
        r = ranks[c] # r: 따라잡은 사람의 원래 등수
        p = players[r-1] # p: 따라잡힌 사람
        
        ranks[c] -= 1
        ranks[p] += 1
        
        players[r-1] = c
        players[r] = p
        
    return players

시행착오 (시간초과 68.8점)

def solution(players, callings):
    for c in callings:
        i = players.index(c)
        players[i-1], players[i] = players[i], players[i-1]
    return players