본문 바로가기
알고리즘/프로그래머스

프로그래머스 1단계 달리기 경주

by 푸딩코딩 2023. 6. 3.
728x90
반응형

https://school.programmers.co.kr/learn/courses/30/lessons/178871

 

프로그래머스

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

programmers.co.kr

def solution(players, callings): 
    answer = {} #딕셔너리 선언
    idx={}
    for i in range(len(players)):
        answer[players[i]]=i #플레이어: 순위
        idx[i]=players[i]   #순위:플레이어
    
    for i in callings:
        j=answer[i] #순위출력
        answer[i]=j-1
        temp=idx[j-1] #앞순번 사람
    
        answer[temp]=j #바꿔줌
        idx[j-1]=i
        idx[j]=temp
    
    return list(idx.values())

 

딕셔너리를 사용하면 

빠르게 원소에 접근할 수 있다. 

파이썬 내장함수 index()는 해당하는 원소의 인덱스를 반환하나, 시간복잡도 O(n)을 갖고 있어 시간 초과가 뜰 수 있다. 

{ key : value } 꼴이다

 

728x90
반응형