문제풀이
- Leave 제외한 id, action을 String을 ArrayList에 저장, Hash에 id:key nickname : value 최신 닉네임 저장
- ArrayList에 저장된 id > nickname + action을 answer로 받고 return
코드
import java.util.*;
class Solution {
public String[] solution(String[] record) {
ArrayList<String> arr = new ArrayList<>();
HashMap<String, String> map = new HashMap<>();
for(int i =0;i<record.length;i++){
String[] s = record[i].split(" ");
if(s[0].equals("Enter")){
arr.add(s[1]+"님이 들어왔습니다.");
map.put(s[1],s[2]);
}else if(s[0].equals("Change")){
map.put(s[1],s[2]);
}else{
arr.add(s[1]+"님이 나갔습니다.");
}
}
String[] answer = new String[arr.size()];
for(int i=0;i<arr.size();i++){
int idx = arr.get(i).indexOf("님");
String key = arr.get(i).substring(0,idx);
answer[i]=map.get(key)+arr.get(i).substring(idx);
}
return answer;
}
}