728x90
[문제]
https://school.programmers.co.kr/learn/courses/30/lessons/178871
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
[코드]
def solution(players, callings):
# {player:현재 인덱스} 저장하는 딕셔너리
p_dict = {player: i for i, player in enumerate(players)}
for call in callings:
# 호출된 플레이어의 현재 인덱스
idx = p_dict[call]
# 리스트에서 바로 앞 플레이어와 위치 교환
prev = players[idx-1]
players[idx-1], players[idx] = players[idx], players[idx-1]
# 딕셔너리에서도 위치 갱신
p_dict[call] -= 1
p_dict[prev] += 1
return players
enumerate()
- 파이썬 내장 함수
- 반복 가능한 객체(리스트, 튜플, 문자열 등)을 입력 받아 인덱스와 해당 요소를 함께 반환하는 이터레이터를 생성
- 이를 통해 반복문에서 각 요소의 인덱스와 값을 동시에 사용할 수 있게 해준다.
fruits = ['apple', 'banana', 'cherry']
for index, fruit in enumerate(fruits):
print(index, fruit)
# 출력
0 apple
1 banana
2 cherry
반응형
'🚩 Coding Test > Programmers' 카테고리의 다른 글
[Programmers][Python] Lv.1 소수 만들기 (0) | 2024.07.10 |
---|---|
[Programmers][Python] Lv.1 대충 만든 자판 (0) | 2024.07.10 |
[Programmers][Python] Lv.2 연속 부분 수열 합의 개수 (0) | 2024.06.20 |
[Programmers][Python] Lv.0 세 개의 구분자 (0) | 2024.06.19 |
[Programmers][Python] Lv.0 진료순서 정하기 (0) | 2024.06.19 |