프로그래머스[Level2] - 오픈채팅방 [문자열][2019 KAKAO BLIND RECRUITMENT] - Java :: 매운코딩
728x90
300x250

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

 

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

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

programmers.co.kr

import java.util.*;

class Solution {
    
    public String[] solution(String[] record) {
        HashMap<String,String> map = new HashMap<String,String>();
        ArrayList<String> list = new ArrayList<String>();
        String[] answer = {};
        
        for(int i =0;i<record.length; i++) {
            String[] sp = record[i].split(" ");
            
            switch(sp[0]){
                case "Enter": { 
                    map.put(sp[1],sp[2]);
                    list.add(sp[1]+"님이 들어왔습니다.");
                    break;
                }
                case "Leave": {
                    list.add(sp[1]+"님이 나갔습니다.");
                    break;
                }
                case "Change": {
                    map.put(sp[1],sp[2]);
                    break;
                }
            }
        }
        
        answer = new String[list.size()];
        
        for(int i = 0 ; i<list.size();i++) {
            String msg = list.get(i);
            String uid = msg.substring(0,msg.indexOf("님"));
            answer[i] = msg.replace(uid, map.get(uid));
            // System.out.println(answer[i]);
        }
        
        return answer;
    }
}

 

uid가 당연히 7자리일거라고 생각하고.. substring(0.7)을 해서.. 계속 런타임 에러가 났었다ㅠ

  • 유저 아이디와 닉네임의 길이는 1 이상 10 이하이다.

문제를 잘 읽자..


        for(int i = 0 ; i<list.size();i++) {
            String msg = list.get(i);
            String uid = list.get(i).substring(0,7);
            answer[i] = msg.replace(msg.substring(0,7), map.get(msg.substring(0,7)));
            System.out.println(answer[i]);
        }
        
728x90

+ Recent posts