반응형
풀이
Map은 아이디와 닉네임을 관리해주고, Queue는 채팅방 메세지를 관리했습니다.
닉네임이 바뀔 때 map에 아이디인 키로 접근하여서 닉네임인 value값을 변경해주었습니다.
Leave 와 Change 상황에는 조건을 주어서 풀이를 완료했습니다. !
import java.io.*;
import java.util.*;
class Solution {
static Map<String, String> map;
static Queue<String[]> result;
public String[] solution(String[] record) {
map = new HashMap<>();
result = new LinkedList<>();
String[] answer = {};
StringTokenizer st;
for(int i = 0 ; i < record.length ; i++){
st = new StringTokenizer(record[i], " ");
String cmd = st.nextToken();
String id = st.nextToken();
String nickName;
if(!cmd.equals("Leave")){
nickName = st.nextToken();
// map으로 아이디 닉네임 구분하기
map.put(id, nickName);
}
if(cmd.equals("Change")) continue;
else if(cmd.equals("Enter")) result.offer(new String[]{id, "들어왔습니다."});
else result.offer(new String[]{id, "나갔습니다."});
}
int size = result.size();
answer = new String[size];
for(int i = 0 ; i < size ; i ++){
String[] cur = result.poll();
String nickName = map.get(cur[0]);
answer[i] =nickName+"님이 "+cur[1];
}
return answer;
}
}
반응형
'알고리즘 > 문제 풀이' 카테고리의 다른 글
[Java/자바 백준 21609] 상어 중학교 (0) | 2022.01.15 |
---|---|
[Java/자바 백준 20057] 마법사 상어와 토네이도 (0) | 2022.01.10 |
[Java/자바 20056 백준] 마법사 상어와 파이어볼 (0) | 2022.01.06 |
[Java/자바 백준 1520] 내리막 길 (0) | 2022.01.05 |
[Java/자바 20055 백준] 컨베이어 벨트 위의 로봇 (0) | 2022.01.05 |