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;
    }
}

댓글

이 블로그의 인기 게시물

Spring Boot Actuator readiness, liveness probes on k8s

About Kafka Basic

About idempotent

About G1 GC

sneak peek jitpack

About ZGC

About JVM Warm up

I need to know a little JVM

HackerRank Java Between Two Sets

Java - HashMap (feat. LinkedList, Tree.. maybe Later)