코딩테스트/Java

(2019카카오) 오픈채팅방 Java

SK_MOUSE 2021. 3. 2. 17:16
반응형

https://programmers.co.kr/learn/courses/30/lessons/42888
오픈채팅방 닉네임

주목해야 될 포인트

 

  • 들어올때(Enter) 닉네임 저장
  • 바꿀때(Change) 닉네임 저장

Map<Key=아이디, Value=닉네임>put해서 업데이트해준다.

 

 

import java.util.*;

class Solution {
    public String[] solution(String[] record) {
        Map<String, String> map = new HashMap<>();

        int changeCount =0;
        for(int i =0; i<record.length; i++){
            String[] s = record[i].split(" ");
            //1.Enter인경우 record 3
            if(s[0].equals("Enter")){//HashMap<아이디, 닉네임> 신입
                map.put(s[1], s[2]);
            }
            //2.Leave인경우 record 2
            else if(s[0].equals("Leave")){

            }
            //3.Change인경우 record 3
            else{
                changeCount++;
                map.put(s[1], s[2]);
            }
        }

        String[] answer = new String[record.length-changeCount];
        int j=0;
        for(int i =0; i<record.length; i++){//출력
            String[] s = record[i].split(" ");
            //1.Enter인경우 record 3
            if(s[0].equals("Enter")){//HashMap<아이디, 닉네임> 신입
                answer[j] = map.get(s[1])+"님이 들어왔습니다.";
                j++;
            }
            //2.Leave인경우 record 2
            else if(s[0].equals("Leave")){
                answer[j] = map.get(s[1])+"님이 나갔습니다.";
                j++;
            }
        }
        return answer;
    }
}
반응형