IT/CodingTeest

[프로그래머스] 오픈채팅방-java

haemni 2022. 3. 1. 12:51
728x90
반응형
SMALL

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

 

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

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

programmers.co.kr

import java.util.*;
import java.math.*;

class Solution {
    public String[] solution(String[] record) {

        ArrayList<String> list = new ArrayList<>();
        int len = record.length;
        HashMap <String,String> map = new HashMap<String,String>();

        String [] recArr = {};
        for(int i = 0 ; i<len ; i++) {
            recArr= record[i].split(" ");
            switch(recArr[0]) {
                case "Enter":
                   list.add(recArr[2]+"@님이 들어왔습니다.@"+recArr[1]);
                   map.put(recArr[1],recArr[2]);
                    break;
                case "Change":
                    map.put(recArr[1],recArr[2]);
                    break;
                case "Leave":
                    list.add(map.get(recArr[1]) +"@님이 나갔습니다.@"+recArr[1]);
                    break;
                default:
                    break;

            }                
        }
        int lsize = list.size();
        String [] temp = {}; 
        for(int i = 0; i<lsize; i++) {
           temp = list.get(i).split("@");
           if(map.containsKey(temp[2])) {
               list.set(i,list.get(i).replace(temp[0],map.get(temp[2])));
           }
        }
       String [] answer = new String[list.size()];
       String [] tmp2 = {};
        for(int i = 0;i<list.size(); i++) {
           tmp2= list.get(i).split("@");
           answer[i] = tmp2[0]+tmp2[1];

        }

        return answer;
    }
}
반응형
LIST