Algorithm/Java
[프로그래머스] 달리기 경주
례진
2023. 10. 25. 22:18
문제링크 : https://school.programmers.co.kr/learn/courses/30/lessons/178871
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
import java.util.*;
class Solution {
public String[] solution(String[] players, String[] callings) {
Map<String, Integer> rankMap = new HashMap<>();
for(int i=0; i< players.length; i++){
rankMap.put(players[i], i);
}
for (String player : callings) {
int ownRank = rankMap.get(player);
String beforePlayer = players[ownRank-1];
players[ownRank-1] = player;
players[ownRank] = beforePlayer;
rankMap.put(player, ownRank-1);
rankMap.put(beforePlayer, ownRank);
}
return players;
}
}
해설
배열 내 위치를 저장할 수 있는 MAP을 생성하여, 호명될때마다 플레이어와 순위를 같이 변경해주면 된다.