728x90
--- 문제 ---
오픈채팅방
카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다.
신입사원인 김크루는 카카오톡 오픈 채팅방을 개설한 사람을 위해, 다양한 사람들이 들어오고, 나가는 것을 지켜볼 수 있는 관리자창을 만들기로 했다. 채팅방에 누군가 들어오면 다음 메시지가 출력된다.
"[닉네임]님이 들어왔습니다."
채팅방에서 누군가 나가면 다음 메시지가 출력된다.
"[닉네임]님이 나갔습니다."
채팅방에서 닉네임을 변경하는 방법은 다음과 같이 두 가지이다.
- 채팅방을 나간 후, 새로운 닉네임으로 다시 들어간다.
- 채팅방에서 닉네임을 변경한다.
입출력 예
["Enter uid1234 Muzi", "Enter uid4567 Prodo","Leave uid1234","Enter uid1234 Prodo","Change uid4567 Ryan"] | ["Prodo님이 들어왔습니다.", "Ryan님이 들어왔습니다.", "Prodo님이 나갔습니다.", "Prodo님이 들어왔습니다."] |
--- 코드 ---
import java.util.Arrays;
import java.util.HashMap;
public class Kakao2019_01 {
public static void main(String[] args) {
String[] record = new String[]{"Enter uid1234 Muzi", "Enter uid4567 Prodo",
"Leave uid1234","Enter uid1234 Prodo","Change uid4567 Ryan"};
String[] answer = solution(record);
System.out.println(Arrays.toString(answer));
}
public static String[] solution(String[] record) {
String[] answer = {};
HashMap<String,String> users = new HashMap<String,String>();//HashMap생성
int cnt = 0;
for(String r : record) {
String[] details = r.split(" ");
switch(details[0]) {
case "Leave":
++cnt;
break;
case "Enter":
++cnt;
users.put(details[1], details[2]);
break;
default:
users.put(details[1], details[2]);
break;
}
}
answer = new String[cnt];
cnt = 0;
for(String r : record) {
String[] details = r.split(" ");
switch(details[0]) {
case "Change":
break;
case "Enter":
// Prodo님이 들어왔습니다.
answer[cnt++]=users.get(details[1])+"님이 들어왔습니다.";
break;
case "Leave":
// Prodo님이 나갔습니다.
answer[cnt++]=users.get(details[1])+"님이 나갔습니다.";
}
}
return answer;
}
}
--- 출처 ----
https://programmers.co.kr/learn/courses/30/lessons/42888
반응형
'Algorithms > Coding Test Practice' 카테고리의 다른 글
[Java] 2021 카카오 인턴십 코딩테스트 문제 : 신규 아이디 추천 (문자열/정규표현식/regular expression) (0) | 2021.09.09 |
---|---|
[Java] 2021 카카오 인턴십 코딩테스트 문제 : 숫자 문자열과 영단어(문자열/String) (0) | 2021.09.09 |
[Java] 2020 카카오 공채 코딩테스트 문제 : 가사 검색(자료구조/ Trie 자료구조) (0) | 2020.03.07 |
[Java] 2020 카카오 공채 코딩테스트 문제 : 자물쇠와 열쇠 (완전 탐색) (0) | 2020.03.06 |
[Java] 2020 카카오 공채 코딩테스트 문제 : 괄호 변환 (0) | 2020.03.06 |