Skip to content

Latest commit

 

History

History
56 lines (50 loc) · 1.87 KB

File metadata and controls

56 lines (50 loc) · 1.87 KB

프로그래머스 Level2 : 2019 KAKAO BLIND RECRUITMENT 오픈채팅방

import java.util.HashMap;
import java.util.ArrayList;
class Solution {
    public String[] solution(String[] record) {
        String[] answer = {};            
        String behavior, uid, nickname;
        // uid, nickname
        HashMap<String, String> nicknameMap = new HashMap<>();
        // uid, behavior
        ArrayList<String[]> behaviorArray = new ArrayList<>();
        
        int index = 0;
        for(String r : record){
            String[] strs = r.split(" ");
            behavior = strs[0];
            uid = strs[1];
            nickname = behavior.equals("Leave")? "": strs[2];

            switch(behavior){
                case "Enter":
                    nicknameMap.put(uid,nickname);
                    behaviorArray.add(new String[2]);
                    behaviorArray.get(index)[0] = uid;
                    behaviorArray.get(index++)[1] = behavior;
                    break;
                case "Leave":   
                    behaviorArray.add(new String[2]);
                    behaviorArray.get(index)[0] = uid;
                    behaviorArray.get(index++)[1] = behavior;
                    break;
                case "Change":   
                    nicknameMap.put(uid,nickname);
                    break;
            }
        }
        
        answer = new String[behaviorArray.size()];
        int i = 0;
        for(String[] array : behaviorArray){
            StringBuilder sb = new StringBuilder();
            sb.append(nicknameMap.get(array[0]));
            sb.append("님이 ");
            if(array[1].equals("Enter")) sb.append("들어왔습니다.");
            else sb.append("나갔습니다.");
            answer[i++] = sb.toString();
        }
        
        return answer;
    }
}