Algorithm/programmers

[2019 카카오 블라인드]오픈채팅방

마닐라 2022. 2. 23. 14:58

📍 문제 설명

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

 

코딩테스트 연습 - 오픈채팅방

오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오

programmers.co.kr

 

💡 접근

Hashmap을 이용해서 들어오거나 닉네임 변경시 map에 기록해주고 출력해주면 되는 문제

 

 

👩‍💻 코드

import java.util.ArrayList;
import java.util.HashMap;

class Solution {

    public String[] solution(String[] record) {
        String[] answer = {};
        ArrayList<String> list = new ArrayList<>();

        HashMap<String, String> map = new HashMap<>();
        for(int i = 0; i < record.length; i++) {
            String[] s = record[i].split(" ");
            if(s[0].equals("Enter") || s[0].equals("Change")) {
                map.put(s[1], s[2]);
            }
        }

        //채팅방에 들어오고 나가거나 닉네임 변경하는 거 확인
        for(int i = 0; i < record.length; i++) {
            String[] s1 = record[i].split(" ");
            if(s1[0].equals("Enter")) list.add(map.get(s1[1]) + "님이 들어왔습니다.");
            if(s1[0].equals("Leave")) list.add(map.get(s1[1]) + "님이 나갔습니다.");
        }

        answer = new String[list.size()];
        for(int i = 0; i < list.size(); i++) {
            answer[i] = list.get(i);
        }

        return answer;
    }

    public static void main(String[] args) {
        Solution s = new Solution();

        String[] record = new String[]{"Enter uid1234 Muzi", "Enter uid4567 Prodo","Leave uid1234","Enter uid1234 Prodo","Change uid4567 Ryan"};
        s.solution(record);
    }
}