문제 설명
해결과정
Solution.java
import java.util.*;
class Solution {
public String[] solution(String[] record) {
ArrayList<String> list = new ArrayList<>();
Map<String, String> map = userIdNickName(record);
// record 의 원소를 배열로 변경
String[] arr = new String [3];
// for문으로 record 배열 탐색
int index = 0;
for(String str : record) {
arr = str.split(" ");
if(arr[0].equals("Enter")) {
list.add(map.get(arr[1]) + "님이 들어왔습니다.");
// map.put(arr[1], arr[2]);
} else if(arr[0].equals("Leave")) {
list.add(map.get(arr[1]) + "님이 나갔습니다.");
} else {
// map.put(arr[1], arr[2]);
}
}
// result 배열의 길이는 record 배열의 길이와 같다.
String[] answer = list.toArray(new String[0]);
// System.out.println(list.toString());
// System.out.println(map.toString());
return answer;
}
public Map<String, String> userIdNickName (String[] record) {
String[] arr = {};
Map<String, String> map = new HashMap<>();
for(String str : record) {
arr = str.split(" ");
if(arr[0].equals("Enter")) {
map.put(arr[1], arr[2]);
} else if(arr[0].equals("Change")) {
map.put(arr[1], arr[2]);
}
}
return map;
}
// 출입기록 입력
// String accessRecord(String str, String[] arr) {
// char c = str.charAt(0);
// String record = arr[1];
// switch (c) {
// case 'E':
// record += "님이 들어왔습니다.";
// break;
// case 'L':
// record += "님이 나갔습니다.";
// break;
// }
// return record;
// }
// String 배열 출력
void printStringArray(String[] arr) {
for(String s : arr) {
System.out.print(s + " ");
}
System.out.println();
}
}
Java
복사