본문 바로가기

Programmers

[프로그래머스][JAVA]Lv. 2 - 오픈채팅방

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
class Solution {
    public String[] solution(String[] record) {
        ArrayList<String> st = new ArrayList<>();
        HashMap<String, String> map = new HashMap<>();
        for (String s : record) {
            String[] chatRecord = s.split(" ");
            if (chatRecord[0].equals("Enter")) {
                map.put(chatRecord[1], chatRecord[2]);
            } else if (chatRecord[0].equals("Change")) {
                map.replace(chatRecord[1], chatRecord[2]);
            }
        }

        for (String s : record) {
            String[] chatRecord = s.split(" ");
            String message = "";
            if (chatRecord[0].equals("Enter")) {
                message = map.get(chatRecord[1]) + "님이 들어왔습니다.";
            } else if (chatRecord[0].equals("Leave")) {
                message = map.get(chatRecord[1]) + "님이 나갔습니다.";
            } else if (chatRecord[0].equals("Change")) {
                continue;
            }
            st.add(message);
        }

        String[] answer = new String[st.size()];
        for (int i = 0; i < st.size(); i++) {
            answer[i] = st.get(i);
        }
        
        return answer;
    }
}

문제 그대로 출력이 나오게끔 꾸며주면 되었던 문제.

먼저 HashMap을 이용하여 누가 누구인지 구별을 해주고 출력을 작업했다.