이번 문제는 오랜만에 재밌게 풀었던 문제였다.
처음 생각보다는 조금 시간이 걸렸지만 깔끔한 문제였다.
해시맵은 데이터 저장을 리스트는 로그를 남겨 반환했다.
해외에서는 한국처럼 인터넷을 쓸 수 없어서 너무 불편하다...
최종 코드
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
class Solution {
public String[] solution(String[] record) {
// 로그를 저장하기 위한 리스트
List<String> list = new ArrayList<>();
// 아이디와 닉네임을 저장하기 위한 해시맵
HashMap<String,String> hm = new HashMap<>();
for (int i= 0; i < record.length; i++) {
String[] temp = record[i].split(" ");
if (temp[0].equals("Enter")) {
hm.put(temp[1], temp[2]);
list.add(temp[1]+"님이 들어왔습니다.");
}else if(temp[0].equals("Leave")) {
list.add(temp[1]+"님이 나갔습니다.");
}else {
hm.replace(temp[1],temp[2]);
}
}
// 아이디로 저장된 리스트를 닉네임으로 변경
String[] answer = new String[list.size()];
for (int i = 0; i < list.size(); i++) {
int idx = list.get(i).indexOf("님");
String id = list.get(i).substring(0,idx);
answer[i] = hm.get(id)+list.get(i).substring(idx);
}
return answer;
}
}
'코딩 테스트' 카테고리의 다른 글
(Java) 프로그래머스 캐시 (0) | 2022.04.28 |
---|---|
(Java) 프로그래머스 괄호 변환 (0) | 2022.03.06 |
(Java) 프로그래머스 다리를 지나는 트럭 (0) | 2022.01.23 |
(Java) 프로그래머스 소수찾기_L2 (0) | 2022.01.23 |
(Java) 프로그래머스 위장 (0) | 2022.01.18 |