본문 바로가기
Algorithm/구현

[프로그래머스 lv1] 달리기 경주

by HANNI하니 2023. 4. 22.

사용 언어 - Python3

문제 - 달리기 경주

 

프로그래머스

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

programmers.co.kr

 

 

정답

딕셔너리를 활용한 인덱스 찾기 (정답 맞춘 여부 X)

현재 위치 : 현재 위치의 선수

현재 선수 : 현재 선수의 위치

두개의 딕셔너리를 만들어 각 위치의 선수를 바꿔주고, 각 선수의 위치를 바꿔준다.

idx.values()로 player 값만 출력해 list형태로 반환한다.

def solution(players, callings):
    idx = {i:player for i, player in enumerate(players)}
    p = {player:i for i, player in enumerate(players)}
    answer = []
    
    for i in callings:
        loc = p[i]
        loc2 = loc-1
        i2 = idx[loc2]
        
        idx[loc] = i2
        idx[loc2] = i
        
        p[i] = loc2
        p[i2] = loc

    return list(idx.values())

 

 

 

  • 정답 깃허브
 

GitHub - yyeongeun/codingtest: 코딩테스트 공부

코딩테스트 공부. Contribute to yyeongeun/codingtest development by creating an account on GitHub.

github.com

 

댓글