원하는 것은 뭐든지

99클럽 코테 스터디 26일차 TIL , 달리기 경주 본문

개발/문제풀이

99클럽 코테 스터디 26일차 TIL , 달리기 경주

댕로그😏 2024. 8. 16. 14:01
반응형

문제

풀이

입력으로 현재 달리고 있는 등 수와 해설진들이 호명할 배열이 주어진다.

해설진들이 호명할 때마다 해당선수가 앞에 있는 선수를 추월한다. 예를 들어,

선희 - 미진 - 대철 - 희진이가 달리고 있을 때 해설진이 미진! 대철! 선희! 했다면

 

미진! 호출 시, 미진 - 선희 - 대철 - 희진

대철! 호출 시, 미진 - 대철 - 선희 - 희진

선희! 호출 시, 미진 - 선희 - 대철 - 희진

 

으로 순위가 결정된다.

제출 1 - 정답

import java.util.*;
class Solution {
    public String[] solution(String[] players, String[] callings) {
        String[] answer = new String[players.length];
        Map<Integer, String> rank = new HashMap<>();	//순위 -> 이름 저장
        Map<String, Integer> record = new HashMap<>();	//이름 -> 순위 저장
        for(int i=1;i<=players.length;i++){
            rank.put(i, players[i-1]);
            record.put(players[i-1],i);
        }
        for(String call : callings){
            int current = record.get(call); //현재 등 수
            String front = rank.get(current-1);
            
            rank.put(current-1, call);
            rank.put(current, front);
            record.put(call, current-1);
            record.put(front, current);
        }
        
        for(int i=0;i<players.length;i++){
            answer[i] = rank.get(i+1);
        }
        
        
        return answer;
    }
}

 

순위에 해당하는 이름을 저장할 Map을 선언

이름에 해당하는 순위를 저장할 Map을 선언

 

해설진들이 호출할 때마다 순위를 바꿔준다.

TIL

  • 이전문제 재풀이
반응형
Comments