Algorithms/- 프로그래머스

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

자굿 2022. 2. 4. 00:16
 

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

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

programmers.co.kr

 

정답

import java.util.*;

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

        Map<String, String> ssMap = new HashMap<>();
        int cnt = 0;

        for(String str : record){
            if(str.startsWith("Enter") || str.startsWith("Change")){
                String[] arr = str.split(" ");
                ssMap.put(arr[1], arr[2]);
            }

            if(str.startsWith("Change")){
                cnt++;
            }
        }

        int len = record.length - cnt;

        String[] answer = new String[len];
        int idx = 0;

        for(String str : record){
            if(str.startsWith("Enter")){
                String[] arr = str.split(" ");
                answer[idx] = ssMap.get(arr[1])+"님이 들어왔습니다.";
                idx++;
            }else if(str.startsWith("Leave")){
                String[] arr = str.split(" ");
                answer[idx] = ssMap.get(arr[1])+"님이 나갔습니다.";
                idx++;
            }
        }

        return answer;
    }
}

 

분석

  • Map으로 아이디와 닉네임을 매핑하여 마지막에 answer에서 아이디 값으로 get하여 닉네임을 가져오면 된다.
  • 어렵게 보이지만 단순한 문제
반응형