[프로그래머스] L2. 오픈채팅방 / 2019 카카오 블라인드 채용
[풀이]
- 파싱으로 입력/출력 문자열 처리
- HashMap을 사용하여 해당하는 아이디(key)에 새/변경된 닉네임(value) 저장
- 아이디 + 들어왔습니다(I)/나갔습니다(O) 의 형태로 새롭게 저장 ex) uid1234/I or uid1234/O
- 해당하는 id를 key값으로 value를 찾은 후 출력 양식에 맞게 저장 후 리턴
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
import java.util.*;
class Solution {
public String[] solution(String[] record) {
Map<String, String> info = new HashMap<String, String>();
List<String> print = new ArrayList<String>();
for(int i=0; i<record.length; i++){
String[] strArr = record[i].split(" ");
String command = strArr[0];
String uid = strArr[1];
if(command.equals("Enter")){
print.add(uid+"/I"); // id/I
info.put(uid, strArr[2]); // 새 닉네임 저장
}else if(command.equals("Leave")){
print.add(uid+"/O"); // id/O
}else{ // change
info.put(uid, strArr[2]); // 변경된 닉네임 저장
}
}
String[] answer = new String[print.size()];
for(int i=0; i<print.size(); i++){
String[] strArr = print.get(i).split("/");
String uid = strArr[0];
String command = strArr[1];
if(command.equals("O")){
answer[i] = info.get(uid)+"님이 나갔습니다.";
}else{
answer[i] = info.get(uid)+"님이 들어왔습니다.";
}
}
return answer;
}
}
|
cs |
'Problem Solving' 카테고리의 다른 글
[프로그래머스] L2 스킬트리 (0) | 2020.12.15 |
---|---|
[프로그래머스] L2 괄호 변환 / 2020 카카오 블라인드 채용 (0) | 2020.12.15 |
[프로그래머스] L2 문자열 압축 / 2020 카카오 블라인드 채용 (0) | 2020.12.09 |
[백준/BOJ] 2675 문자열 반복 JAVA (0) | 2020.07.09 |
[백준/BOJ] 2577 숫자의 개수 JAVA (0) | 2020.07.06 |
댓글