#문제
https://programmers.co.kr/learn/courses/30/lessons/42888
#풀이
id, name 쌍을 가지는 HashMap을 이용하였다.
record를 순회하면서 id, name 쌍을 만들고 요청이 있을 경우 name을 업데이트 한다.
name은 변경될 수 있으므로 name대신 id를 넣어서 문자열을 저장해둔다.
순회가 끝난 후 문자열 내 id를 name으로 변경한다.
#소스코드
import java.util.*;
class Solution {
public String[] solution(String[] record) {
String[] answer = {};
HashMap<String, String> users = new HashMap<String, String>();
StringBuilder sb = new StringBuilder();
for(int i = 0; i < record.length; i++){
String s = record[i];
String[] arr = s.split(" ");
switch(arr[0]){
case "Enter":
sb.append(arr[1]).append("님이 들어왔습니다.-");
users.put(arr[1], arr[2]);
break;
case "Leave":
sb.append(arr[1]).append("님이 나갔습니다.-");
break;
case "Change":
users.put(arr[1], arr[2]);
break;
}
}
String str = sb.toString();
String[] result = str.split("-");
for(int i = 0; i < result.length; i++){
String key = result[i].substring(0, result[i].indexOf("님"));
result[i] = result[i].replace(key, users.get(key));
}
return result;
}
}
'💡Problem Solving > Programmers' 카테고리의 다른 글
[프로그래머스] 소수 찾기 (Java) (0) | 2021.10.23 |
---|---|
[프로그래머스] JadenCase 문자열 만들기 (Java) (0) | 2021.10.23 |
[프로그래머스] 예상 대진표 (Java) (0) | 2021.10.21 |
[프로그래머스] 이진 변환 반복하기 (Java) (0) | 2021.10.21 |
[프로그래머스] H-Index (Java) (0) | 2021.10.21 |