이런 문제가 너무 좋다. 구조를 생각하고 구현하면 생각한대로 척척되는... 그렇다고 내 코드가 완벽한건 아니지만 그래도 뭔가 체계적으로 뭔가 된다는 느낌이 들 때 코딩이 정말 즐겁다.
import java.util.*;
class Solution {
public String[] solution(String[] record) {
ArrayList<String> chatLog = new ArrayList<>();
HashMap<String, String> nickMap = new HashMap<>();
for(String log : record){
StringTokenizer st = new StringTokenizer(log);
String command = st.nextToken();
String userId = st.nextToken();
String nickname = "";
if(!command.equals("Leave")){
nickname = st.nextToken();
}
switch(command){
case "Enter":
nickMap.put(userId, nickname);
chatLog.add(userId + "님이 들어왔습니다.");
break;
case "Leave":
chatLog.add(userId + "님이 나갔습니다.");
break;
case "Change":
nickMap.put(userId, nickname);
break;
}
}
String[] answer = new String[chatLog.size()];
int logIdx = 0;
for(String str : chatLog){
int endOfId = str.indexOf("님");
String userId = str.substring(0, endOfId);
answer[logIdx++] = str.replace(userId, nickMap.get(userId));
}
return answer;
}
}
import java.util.*;
class Solution {
public String[] solution(String[] record) {
//====================================
StringBuilder sb = new StringBuilder();
HashMap<String,String> user = new HashMap<>(); //아이디명, 닉네임
//====================================
for(int i=0;i<record.length;i++){
String[] word = record[i].split(" ");
if(word[0].equals("Enter") || word[0].equals("Change")){
user.put(word[1],word[2]);
}
}
}
제 코드는 어떤가유