본문 바로가기

머리맞대는이야기/프로그래머스 (JAVA)

[2019 KAKAO BLIND RECRUITMENT] 오픈채팅방

반응형

출처: programmers.co.kr/learn/courses/30/lessons/42888

 

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

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

programmers.co.kr

 

풀이과정

유저정보를 담고 있는 자료형태를 만들어서 거기서 아이디 값에 따른 닉네임을 관리하자

그리고 들어오고 나간 내역을 그에 맞게 출력해준다.


풀이코드

import java.util.*;
class Solution {
    public String[] solution(String[] record) {
        // 1. 나간 후 새로운 닉네임
        // 2. 닉네임 변경 : 기존 닉네임도 모두 변경
        ArrayList<String> arrList = new ArrayList<>();
		
		HashMap<String, String> userList = new HashMap<>();

		for (int i = 0; i < record.length; i++) {
			String[] keywords = record[i].split(" "); // 띄어쓰기로 자르기

			if (keywords[0].equals("Enter"))
				userList.put(keywords[1], keywords[2]);

			else if (keywords[0].equals("Change"))
				userList.put(keywords[1], keywords[2]);

		} // for i
		for (int i = 0; i < record.length; i++) {
			String[] keywords = record[i].split(" ");
			if (keywords[0].equals("Enter"))
				arrList.add(userList.get(keywords[1]) + "님이 들어왔습니다.");
			else if (keywords[0].equals("Leave"))
				arrList.add(userList.get(keywords[1]) + "님이 나갔습니다.");
			else
				continue;

		} // for i
		String[] answer = new String[arrList.size()];
		for (int i = 0; i < arrList.size(); i++)
			answer[i]= arrList.get(i);

        return answer;
    }
}

 

memo

생각보다 쉬웠다. 아이디 바꾼 로그내역은 출력하지 않는다. 오랜만에 사전 풀이과정 생각한대로 풀었다.

 

반응형