본문 바로가기
Beakjoon&프로그래머스/Java

[프로그래머스/Java] 오픈채팅방

by 현장 2026. 4. 5.

-Code

import java.util.*;

class Solution {
    static class Member {
        String id;
        boolean exit;

        public Member(String id, boolean exit) {
            this.id = id;
            this.exit = exit;
        }
    }
    
    public String[] solution(String[] record) {
        Map<String, String> idAndName = new HashMap<>();
        List<Member> log = new ArrayList<>();
        for (String line : record) {
            StringTokenizer st = new StringTokenizer(line);
            String move = st.nextToken();
            String id = st.nextToken();
            // 들어가고 나간거 저장
            if (move.equals("Leave")) {
                Member member = new Member(id, true);
                log.add(member);
            } else {
                String name = st.nextToken();
                if (move.equals("Enter")) {
                    Member member = new Member(id, false);
                    log.add(member);
                }
                // id, name 저장
                idAndName.put(id, name);
            }
        }
        // 변경된 닉네임 포함해서 저장
        String[] answer = new String[log.size()];
        for (int i = 0; i < log.size(); i++) {
            Member member = log.get(i);
            StringBuilder sb = new StringBuilder();
            String isExit = member.exit ? "나갔습니다." : "들어왔습니다.";
            sb.append(idAndName.get(member.id))
                    .append("님이 ")
                    .append(isExit);
            answer[i] = sb.toString();
        }
        return answer;
    }
}