입력으로 들어오는 UID와 닉네임을 map으로 저장
-> UID는 변하지 않고 닉네임은 변하는 값이기 때문에 UID를 key로 저장
UID와 닉네임이 같이 들어오는 경우는 Enter와 Change 두 가지
-> 결국 마지막으로 들어오는 닉네임이 저장되기 때문에 for문으로 모든 입력을 받아서 닉네임 저장
처음 입력부터 다시 for문을 돌면서 Enter와 Leave인 경우 알맞는 결과값을 저장
(사실 for문 두 번 돌기 싫어서 많이 고민을 해봤는데 도저히 생각이 안 나서 포기했다..🫠)
import java.util.*;
class Solution {
public String[] solution(String[] record) {
List<String> answer = new ArrayList<>();
Map<String, String> names = new HashMap<>();
for (String r : record) {
String[] word = r.split(" ");
if (word.length == 3) names.put(word[1], word[2]);
}
for (String r : record) {
String[] word = r.split(" ");
if (word[0].equals("Enter")) {
answer.add(names.get(word[1]) + "님이 들어왔습니다.");
} else if (word[0].equals("Leave")) {
answer.add(names.get(word[1]) + "님이 나갔습니다.");
}
}
return answer.toArray(new String[0]);
}
}