[KAKAO] 오픈채팅방

2022. 3. 30. 15:43PS/Programmers

[문제 접근법]

- id(key), nickname(value) 인 map을 이용하여 문제를 해결하였다.

 

문제 설명

 

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

 

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

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

programmers.co.kr


[구현1]

- Leave 액션을 제외한 나머지 액션들에 대해서 id에 해당하는 nickname을 계속 변경하였음.

 

  public Map<String,String> makeAcation(){
        Map<String, String> action=new HashMap<>();
        action.put("Enter","님이 들어왔습니다.");
        action.put("Leave","님이 나갔습니다.");

        return action;
    }

    public String[] solution(String[] record) {
        Map<String, String> idMap=new HashMap<>();          //key: I, value: NICKNAME 
        Map<String, String> actionMap=makeAcation();        //key: action, value: 액션에 따른 출력물
        List<String> list=new ArrayList<>();

        for (String s : record) {
            String[] rec = s.split(" ");

            if(!rec[0].equals("Leave"))
                idMap.put(rec[1],rec[2]);
        }

        for (String s : record) {
            String[] rec = s.split(" ");

            if(!rec[0].equals("Change"))
                list.add(idMap.get(rec[1])+actionMap.get(rec[0]));
        }

        return list.toArray(new String[list.size()]);
    }
반응형

'PS > Programmers' 카테고리의 다른 글

타겟 넘버  (0) 2022.03.31
네트워크  (0) 2022.03.30
[Summer/Winter Coding(~2018)] 스킬트리  (0) 2022.03.29
더 맵게  (0) 2022.03.24
[2021 Dev-Matching] 다단계 칫솔 판매  (0) 2022.03.23