Skip to content

Commit e9d3566

Browse files
committed
[level 2] Title: 오픈채팅방, Time: 185.01 ms, Memory: 186 MB -BaekjoonHub
1 parent ea3cd84 commit e9d3566

File tree

2 files changed

+33
-17
lines changed

2 files changed

+33
-17
lines changed

프로그래머스/2/42888. 오픈채팅방/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
### 성능 요약
66

7-
메모리: 179 MB, 시간: 158.59 ms
7+
메모리: 186 MB, 시간: 185.01 ms
88

99
### 구분
1010

@@ -16,7 +16,7 @@
1616

1717
### 제출 일자
1818

19-
2025년 08월 02일 09:18:20
19+
2025년 08월 02일 09:36:30
2020

2121
### 문제 설명
2222

Lines changed: 31 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,52 @@
1-
import java.util.Arrays;
2-
import java.util.HashMap;
3-
import java.util.Map;
1+
import java.util.*;
2+
43
class Solution {
4+
class User {
5+
String id;
6+
String nickname;
7+
8+
User(String id,String nickname){
9+
this.id = id;
10+
this.nickname = nickname;
11+
}
12+
13+
public void setNickname(String nickname) {
14+
this.nickname = nickname;
15+
}
16+
17+
public String getNickname() {
18+
return nickname;
19+
}
20+
}
21+
522
public String[] solution(String[] record) {
6-
// Pattern pattern = Pattern.compile("([a-z\\s.-]+)([0-9]{1,5})");
7-
Map<String,String> map = new HashMap<>();
23+
Map<String, User> map = new HashMap<>();
824

925
for(String str : record) {
1026
String[] split = str.split(" ",3);
27+
String type = split[0];
1128
String id = split[1];
12-
if(split.length > 2) {
29+
if(type.equals("Enter")) {
1330
String nickname = split[2];
14-
map.put(id,nickname);
31+
map.put(id, new User(id,nickname));
32+
} else if (type.equals("Change")) {
33+
String nickname = split[2];
34+
map.get(id).setNickname(nickname); // 닉네임 수정
1535
}
16-
1736
}
1837

19-
StringBuilder sb = new StringBuilder();
38+
ArrayList<String> result = new ArrayList<>();
2039
for(String str : record) {
2140
String type = str.split(" ",2)[0];
2241
String id = str.split(" ",3)[1];
2342

2443
// 입장,퇴장만 기록
2544
if(type.equals("Enter")) {
26-
sb.append(map.get(id));
27-
sb.append("님이 들어왔습니다.,");
45+
result.add(map.get(id).getNickname() +"님이 들어왔습니다.");
2846
} else if (type.equals("Leave")) {
29-
sb.append(map.get(id));
30-
sb.append("님이 나갔습니다.,");
47+
result.add(map.get(id).getNickname() +"님이 나갔습니다.");
3148
}
3249
}
33-
34-
return sb.toString().split(",");
50+
return result.toArray(new String[0]);
3551
}
3652
}

0 commit comments

Comments
 (0)