Open
Description
package algo;
// 보자마자 ID - 닉네임 -> HASHMAP사용을 떠올렸다.
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
public class Solution {
public String[] solution(String[] record) {
HashMap<String, String> pair = new HashMap<>();// 마지막 Id-닉네임 기록을 위한
List<String> log = new ArrayList<>(); // 출력문 리스트
// 마지막에 변경 혹은 입장된 이름으로 모두 변경
// 먼저 Id님이 들어왔습니다로 설정하고 마지막에 마지막저장 닉네임으로 변경해주기
for (String reco : record) {
String[] str = reco.split(" ");
if (str[0].equals("Enter")) {
log.add(str[1] + "님이 들어왔습니다.");
pair.put(str[1], str[2]);
pair.replace(str[1], str[2]);
}
if (str[0].equals("Leave")) {
log.add(str[1] + "님이 나갔습니다.");
}
if (str[0].equals("Change")) {
pair.replace(str[1], str[2]);
}
}
// Id님이 들어왔습니다를 -> 닉네임님이 들어왔습니다로 전부 변경 후 배열에 추가해주기
String[] answer = new String[log.size()];
int i = 0;
for (String s : log) {
int idx = s.indexOf("님");
String substring = s.substring(0, idx);
String str = pair.get(substring);
answer[i] = str + s.substring(idx, s.length());
i++;
}
return answer;
}
}