[프로그래머스]달리기 경주

allnight5·2023년 4월 6일
0

프로그래머스

목록 보기
58/73

링크

실수한부분이 있는 성공

import java.util.*;
class Solution {
    public String[] solution(String[] players, String[] callings) {
        String[] answer = new String[players.length];
        /* 
        이름을 통해서 검색해줄 것과 번호를 통해서 검색할 맵을 두개 만들었다.
        하지만 String[] players를 이용하여 맵 대신 이용이 가능했다.
        맵은 하나만 있으면 됬다.
        */
        Map<String, Integer> sMap = new HashMap<>();
        Map<Integer, String> iMap = new HashMap<>();

        for(int i=0; i<players.length;i++){
            sMap.put(players[i], i);
            iMap.put(i, players[i]);
        } 
        for(int i=0; i<callings.length; i++){
        
        /*
        변수 이름 선언 문제
        카멜케이스나 파스칼케이스가 아닌것으로 작성했다.
        */
            int before_players_number  = sMap.get(callings[i]);
            String before_player_name = iMap.get(before_players_number);

            int after_players_number  = before_players_number - 1;
            String after_player_name = iMap.get(after_players_number);

            sMap.put(before_player_name, after_players_number);

            sMap.put(after_player_name, before_players_number);

            iMap.put(after_players_number, before_player_name);
            iMap.put(before_players_number, after_player_name);
        }
        for(int i=0; i<iMap.size();i++){
            answer[i] = iMap.get(i);
        }
        return answer;
    }
}

변수이름 선언할때 신경써서 하자

profile
공부기록하기

0개의 댓글