1- import java .util .Arrays ;
2- import java .util .HashMap ;
3- import java .util .Map ;
1+ import java .util .*;
2+
43class 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