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

수경·2023년 3월 16일
0

problem solving

목록 보기
130/174

프로그래머스 - 오픈채팅방

풀이

  1. 입력으로 들어오는 UID와 닉네임을 map으로 저장
    -> UID는 변하지 않고 닉네임은 변하는 값이기 때문에 UID를 key로 저장

  2. UID와 닉네임이 같이 들어오는 경우는 Enter와 Change 두 가지
    -> 결국 마지막으로 들어오는 닉네임이 저장되기 때문에 for문으로 모든 입력을 받아서 닉네임 저장

  3. 처음 입력부터 다시 for문을 돌면서 Enter와 Leave인 경우 알맞는 결과값을 저장

(사실 for문 두 번 돌기 싫어서 많이 고민을 해봤는데 도저히 생각이 안 나서 포기했다..🫠)


코드

import java.util.*;

class Solution {
    public String[] solution(String[] record) {
        List<String> answer = new ArrayList<>();

        Map<String, String> names = new HashMap<>();
        for (String r : record) {
            String[] word = r.split(" ");
            if (word.length == 3) names.put(word[1], word[2]);
        }

        for (String r : record) {
            String[] word = r.split(" ");
            if (word[0].equals("Enter")) {
                answer.add(names.get(word[1]) + "님이 들어왔습니다.");
            } else if (word[0].equals("Leave")) {
                answer.add(names.get(word[1]) + "님이 나갔습니다.");
            }
        }

        return answer.toArray(new String[0]);
    }
}
profile
어쩌다보니 tmi뿐인 블로그😎

0개의 댓글