반응형
https://programmers.co.kr/learn/courses/30/lessons/42888
[ 문제풀이 ]
HashMap 자료구조를 사용한다면 쉽게 해결할 수 있는 문제이다.
모든 record를 돌면서 Enter, Leave인 경우 HashMap에 넣어주면서 유저 아이디를 갱신해주고 Enter, Leave인 경우 채팅방 메시지를 유저 아이디와 함께 넣어준다.
이후 정답 리스트를 돌면서 유저 아이디를 갱신된 유저 아이디로 변경해주고 출력해준다.
import java.util.*;
class Solution {
public String[] solution(String[] record) {
HashMap<String, String> uid = new HashMap<String, String>();
ArrayList<String> cmdList = new ArrayList<String>();
for(String re : record) {
String[] str = re.split(" ");
if (str[0].equals("Leave")) {
cmdList.add(str[1] + ":님이 나갔습니다.");
} else {
if (str[0].equals("Enter")) {
cmdList.add(str[1] + ":님이 들어왔습니다.");
}
//유저 아이디 갱신
uid.put(str[1], str[2]);
}
}
String[] answer = new String[cmdList.size()];
for (int i = 0; i < cmdList.size(); ++i) {
String[] cmd = cmdList.get(i).split(":");
answer[i] = uid.get(cmd[0]) + cmd[1];
}
return answer;
}
}
반응형
'Problem Solving > 카카오 블라인드 기출' 카테고리의 다른 글
2019 - 후보키 (0) | 2021.08.08 |
---|---|
2019 - 실패율 (0) | 2021.08.08 |
2018 - [3차] n진수 게임 (0) | 2021.08.07 |
2018 - [3차] 파일명 정렬 (0) | 2021.08.07 |
2018 - [3차] 자동완성 (0) | 2021.08.07 |
댓글