1. 문제 풀이 아이디어
List
와Map
을 사용하여 문제를 해결할 수 있다.
2. 나의 정답 코드
class Solution {
public String[] solution(String[] record) {
List<String> log = new ArrayList<>();
List<String> uid = new ArrayList<>();
Map<String, String> map = new HashMap<>();
for (String s : record) {
String[] ss = s.split(" ");
if (ss[0].equals("Enter")) {
uid.add(ss[1]);
log.add("님이 들어왔습니다.");
map.put(ss[1], ss[2]);
} else if (ss[0].equals("Leave")) {
uid.add(ss[1]);
log.add("님이 나갔습니다.");
} else if (ss[0].equals("Change")) {
map.put(ss[1], ss[2]);
}
}
for (int i = 0; i < log.size(); i++) {
log.set(i, map.get(uid.get(i)) + log.get(i));
}
return log.toArray(new String[0]);
}
}
3. 정리
- 입력을 처리할 때, 문자열을 분리해
uid
는uid
리스트에, 로그 메시지는log
리스트에 저장한다. 닉네임은Map
에uid
와 함께 저장한다.
- 모든 입력을 처리한 후,
log
리스트를 순회하며 각 로그 앞에uid
에 대응하는 닉네임을map
에서 가져와 추가한다.
- 최종적으로
log
리스트를 배열로 변환하여 반환한다.
Share article