2019 카카오 신입 공채 1차 - 오픈채팅방

문제 풀기 : https://www.welcomekakao.com/learn/courses/30/lessons/42888

이 문제의 핵심은 uid이다.
하나의 uid에 하나의 닉네임이 매핑된다.
결국 마지막에 변경된 닉네임이 uid이 매핑된다.
Change의 경우를 제외하고 Enter와 Leave의 경우만 한국 문자열로 대치하면서,
uid에 매핑된 닉네임을 대입시키면 된다.

import java.util.*;

class Solution {
    public String[] solution(String[] record) {
        Map<String, String> users = new HashMap<>();
        ArrayList<String> answer = new ArrayList<>();
        int length = 0;
        for (int i = 0; i < record.length; i++) {
            String[] temp = record[i].split(" ");
            if (temp.length > 2)
                users.put(temp[1], temp[2]);
            if(!temp[0].equals("Change"))
                length++;
        }
        String[] returnAnswer = new String[length];
        for (int i = 0; i < record.length; i++) {
            String[] temp = record[i].split(" ");
            String nick = users.get(temp[1])+"님이 ";
            String suffix = "";
            if (temp[0].equals("Enter")) {
                suffix = "들어왔습니다.";
            } else if (temp[0].equals("Leave")) {
                suffix = "나갔습니다.";
            }
            if (!temp[0].equals("Change"))
               answer.add(nick+suffix);
        }
        answer.toArray(returnAnswer);
        return returnAnswer;
    }
}

댓글

이 블로그의 인기 게시물

About JVM Warm up

About idempotent

About Kafka Basic

About ZGC

sneak peek jitpack

Spring Boot Actuator readiness, liveness probes on k8s

About Websocket minimize data size and data transfer cost on cloud

About G1 GC

대학생 코딩 과제 대행 java, python, oracle 네 번째