

코딩테스트 연습 - 달리기 경주 | 프로그래머스 스쿨 (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 |