java 프로그래머스 _오픈채팅방
2021. 5. 5. 01:01ㆍ프로그래머스 알고리즘/코딩 테스트 문제
반응형
출제 링크 : programmers.co.kr/learn/courses/30/lessons/42888
import java.util.*;
class Solution {
public static Map<String, String> userList = new HashMap<String, String>();
public static Queue<String> inOutQueue = new ArrayDeque<String>();
public static Queue<String> uidQueue = new ArrayDeque<String>();
public String[] solution(String[] record) {
List<String> answer = new ArrayList<>();
// 회원 가입
for (String cord : record) {
String[] temp = cord.split(" ");
if (!temp[0].equals("Leave")) {
signIn(temp[1], temp[2]);
}
if (!temp[0].equals("Change")) {
inOutQueue.add(temp[0]);
uidQueue.add(temp[1]);
}
}
// 출입명부
while (!inOutQueue.isEmpty()) {
String inOut = inOutQueue.poll();
String nickName = userList.get(uidQueue.poll());
// System.out.println(inOut);
// System.out.println(nickName);
switch (inOut) {
case "Enter":
answer.add(nickName + "님이 들어왔습니다.");
break;
case "Leave":
answer.add(nickName + "님이 나갔습니다.");
break;
}
}
return answer.toArray(new String[answer.size()]);
}
// 회원가입
private void signIn(String uid, String nickName) {
userList.put(uid, nickName);
}
}
반응형