import java.util.Map;
import java.util.HashMap;
class Solution {
public String[] solution(String[] players, String[] callings) {
Map<String, Integer> map = new HashMap<>();
for (int i = 0; i < players.length; i++) {
map.put(players[i], i);
}
for (String player : callings) {
int idx = map.get(player);
String frontPlayer = players[idx - 1];
players[idx - 1] = player;
players[idx] = frontPlayer;
map.put(player, idx - 1);
map.put(frontPlayer, idx);
}
return players;
}
}
더보기
- players에 선수 이름을 key, 인덱스를 value로 map에 저장
- callings 배열을 순회하여 이름이 불린 선수에 map에 존재하는 인덱스를 꺼냄
- 해당 선수 앞에 있는 선수를 players 배열에서 가져옴
- 이름이 불린 선수와 앞에 있는 선수의 위치를 바꾼 뒤 map에 선수별 새로운 인덱스를 반영
'💡 > 코딩 테스트' 카테고리의 다른 글
[프로그래머스] 홀짝에 따라서 다른 값 반환하기 (0) | 2024.06.12 |
---|---|
[프로그래머스] 가장 가까운 같은 글자 (0) | 2024.06.12 |
[프로그래머스] 추억 점수 (0) | 2024.05.31 |
[프로그래머스] 1로 만들기 (0) | 2024.05.31 |
[프로그래머스] 크기가 작은 부분 문자열 (0) | 2024.05.30 |