알고리즘/문제풀이

[정렬] 오픈채팅방

lipnus 2022. 8. 7. 15:26
반응형

프로그래머스

문제: https://school.programmers.co.kr/learn/courses/30/lessons/42888

 

import java.util.*;

class Solution {
    
    HashMap<String, String> hash = new HashMap<>();
    Queue<Message> queue = new LinkedList<>();
    
    public String[] solution(String[] record) {
        
        
        for(int i=0; i<record.length; i++) {
            String[] cmd = record[i].split(" ");
            
            if(cmd[0].equals("Enter")) {
                hash.put(cmd[1], cmd[2]);
                Message msg = new Message(cmd[1], "들어왔습니다.");
                queue.add(msg);
                
            }else if(cmd[0].equals("Change")) {
                hash.put(cmd[1], cmd[2]);
                
            }else if(cmd[0].equals("Leave")) {
                Message msg = new Message(cmd[1], "나갔습니다.");
                queue.add(msg);
            }
        }
        
        int size = queue.size();
        String[] answer = new String[size];
        for(int i=0; i<size; i++) {
            answer[i] = queue.poll().getMessage();
        }
         
        return answer;
    }
    
    class Message {
        String uid;
        String msg;
        
        public Message(String uid, String msg) {
            this.uid = uid;
            this.msg = msg;
        }
        
        public String getMessage() {
            return hash.get(uid) + "님이 " + this.msg;
        }
    }
}
반응형

'알고리즘 > 문제풀이' 카테고리의 다른 글

Word Break  (0) 2022.09.04
[정렬] 문자열 압축  (0) 2022.08.07
[Heap] 디스크 컨트롤러  (0) 2022.08.07
[이진수] Binary Gap  (0) 2019.04.11
[BFS] 아기상어 (두번째)  (0) 2019.04.11