본문 바로가기
코딩테스트 파이썬/파이썬 프로그래머스 1단계

달리기 경주

by 세용용용용 2023. 10. 5.

코딩테스트 연습 - 달리기 경주 | 프로그래머스 스쿨 (programmers.co.kr)

 

프로그래머스

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

programmers.co.kr

 

나의 코드

def solution(players, callings):
    answer = []
    for i in callings:
        # 이름 불린 인덱스
        call_index = players.index(i)
        # 이름 불린 선수
        call_play = players[call_index]
        # 이름 불린 선수 앞에있는 선수
        change_play = players[call_index-1]
       
        # 교체해주기
        players[call_index-1] = call_play
        players[call_index] = change_play
    #print(players)
    answer = players
    return answer
solution(["mumu", "soe", "poe", "kai", "mine"],
         ["kai", "kai", "mine", "mine"])

 

수정 코드 

순위 딕셔너리를 만들주고 선수마다 순위를 바꿔주자

def solution(players, callings):
    # 순위 딕셔너리를 만들어준다
    players_dict = {}
    for i in range(len(players)):
        players_dict[players[i]] = i+1
    #print(players_dict)

    # 선수 이름을 돌며 순위를 바꿔준다
    for i in callings:
        call_rank = players_dict[i]
        players_dict[i] -= 1
        players_dict[players[call_rank-2]] += 1
        players[call_rank-2], players[call_rank-1] = players[call_rank-1], players[call_rank-2]
   
    #print(players)
    return players
solution(["mumu", "soe", "poe", "kai", "mine"],
         ["kai", "kai", "mine", "mine"])

'코딩테스트 파이썬 > 파이썬 프로그래머스 1단계' 카테고리의 다른 글

정수를 나선형으로 배치하기  (0) 2023.10.26
공원 산책  (0) 2023.10.06
덧칠하기  (0) 2023.09.24
추억 점수  (0) 2023.09.24
신고 결과 받기  (0) 2023.05.22