import java.util.*;
class Solution {
public ArrayList<String> solution(String[] record) {
ArrayList<String> answer = new ArrayList<>();
Map<String,String> map = new HashMap<>();
// 다 돌리고나면 해당 아이디에 맞는 이름이 매칭 되어있을 것.
for(String str : record){
String[] info = str.split(" ");
if(info[0].equals("Leave")) continue;
else if(info[0].equals("Enter")) map.put(info[1],info[2]);
else map.put(info[1],info[2]); //덮어 씌움
}
// 해당아이디 이름 불러와서 answer에 저장
for(String str : record){
String[] info = str.split(" ");
String name = map.get(info[1]);
if(info[0].equals("Enter")) answer.add(name + "님이 들어왔습니다.");
else if(info[0].equals("Leave")) answer.add(name + "님이 나갔습니다.");
}
return answer;
}
}
나는 이 문제 어려웠다. change의 경우를 기존에 map에서 key를 통해 찾아서 그냥 덮어 씌운다는 개념을 생각하지 못했따,,,,,,
이 문제는 결국엔 map에다가 해당 id에 맞는 이름을 최종적으로 덮어씌우면서 저장해두고, 다시 한번 record를 돌려서 answer에 저장해주면 되는거였다,,,,,
결론적으로 쉬운문제였는데, 집중하자
개발자로서 성장하는 데 큰 도움이 된 글이었습니다. 감사합니다.