알고리즘/프로그래머스

[프로그래머스]JAVA - Level 2. 오픈채팅방

K.두부 2022. 4. 11. 23:20
반응형
import java.util.*;

class Solution {
    public String[] solution(String[] record) {
        ArrayList<String> List = new ArrayList<>(); // id + 들어왔습니다. 나갔습니다.
        Map<String, String> map = new HashMap<>();  // id, name
        
        for (int i=0; i<record.length; i++) {
            String[] temp = record[i].split(" "); 
            
            switch (temp[0]) {
                case "Enter":
                    map.put(temp[1], temp[2]);             // ex) uid1234, Muzi
                    List.add(temp[1] + "님이 들어왔습니다."); // ex) uid1234님이 들어왔습니다.
                    break;
                case "Leave":
                    List.add(temp[1] + "님이 나갔습니다.");
                    break;
                case "Change":
                    map.replace(temp[1], temp[2]);         // ex) uid1234, Muzi -> uid1234, Ryan
                    break;
            }
        }
        
        String[] answer = new String[List.size()];
        for (int i=0; i<List.size(); i++) {
            int idx = List.get(i).indexOf("님");       
            String id = List.get(i).substring(0, idx); // ex) uid1234
            answer[i] = map.get(id) + List.get(i).substring(idx); 
        }
        
        return answer;
    }
}

 

 

반응형