[프로그래머스] Lv.1 달리기 경주.java

hgghfgf·2023년 7월 5일
0

프로그래머스

목록 보기
205/227

달리기 경주.java

import java.util.*;

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 s : callings) {
            int cur = map.get(s);
            map.put(s, cur - 1);
            map.put(players[cur - 1], cur);
            players[cur] = players[cur - 1];
            players[cur - 1] = s;
        }

        return players;
    }
}

HashMap을 사용하여 플레이어 이름과 인덱스를 매핑합니다.
각 호출을 처리
현재 호출된 플레이어의 인덱스를 가져옵니다.
현재 호출된 플레이어의 인덱스를 1 감소시킵니다.
현재 호출된 플레이어의 인덱스와 그 이전 플레이어의 인덱스를 서로 교환합니다.
플레이어 배열에서 플레이어들의 순서가 변경됩니다.
변경된 플레이어 배열을 반환합니다.

출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/courses/30/lessons/178871

0개의 댓글