반응형

문제

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

 

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

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

programmers.co.kr

 

풀이

 

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

class Solution {

    private HashMap<String, String> map = new HashMap<>();

    public String[] solution(String[] records) {
        ArrayList<String> answerList = new ArrayList<>();
        String message;

        for (String record : records) {
            message = process(record);
            if (message != null) {
                answerList.add(message);
            }
        }

        //set answer
        String[] answer = new String[answerList.size()];
        int idx = 0;
        for (String s : answerList) {
            String id = s.substring(0, s.indexOf('님'));
            answer[idx] = s.replace(id, map.get(id));
            ++idx;
        }
        return answer;
    }

    private String process(String r) {
        String[] temp = r.split(" ");

        String status = temp[0];
        String id = temp[1];
        if (temp.length == 3) {
            String name = temp[2];
            map.put(id, name);
        }

        if ("Enter".equals(status))
            return id + "님이 들어왔습니다.";
        else if ("Leave".equals(status))
            return id + "님이 나갔습니다.";
        return null;
    }

}
반응형

'개발 > 알고리즘' 카테고리의 다른 글

[codeup] 4503 바이러스  (0) 2021.09.04
[프로그래머스] 뉴스 클러스터링  (0) 2021.09.03
[프로그래머스] 문자열 압축  (0) 2021.08.25
[프로그래머스] 순위 검색  (0) 2021.08.09
프로그래머스 더 맵게  (0) 2021.07.21
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기