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 Kafka Basic

About JVM Warm up

About ZGC

Spring Boot Actuator readiness, liveness probes on k8s

About G1 GC

sneak peek jitpack

About idempotent

Synology NAS에 MariaDB 10에 Mysql workbench로 원격접속하기

C 언어 구조체의 포인터 멤버 변수

About Websocket minimize data size and data transfer cost on cloud