🔗 문제 링크
🔎 문제 풀이
이 문제는 보자마자 HashMap이 떠올라서 간단하게 풀었다.
채점할 때 테스트 케이스가 좀 많아서 살짝 두려웠지만 통과 !
Key Point
🔑 유저 아이디와 닉네임을 HashMap에 저장한다. (key: 유저 아이디, value: 닉네임)
🔑 count 변수 : answer 배열의 크기를 선언하기 위해 들어오고 나가는 경우의 수(=count)를 센다.
🔑 오픈 채팅방을 개설한 사람이 보는 메시지(= "ooo님이 들어왔습니다." or "ooo님이 나갔습니다.")를 문자열 배열 answer에 저장한다.
Java 코드
import java.util.*;
class Solution {
public String[] solution(String[] record) {
// 1. 유저 아이디와 닉네임을 HashMap에 저장한다. (key: 유저 아이디, value: 닉네임)
Map<String, String> map = new HashMap<String, String>();
int count = 0;
for (int i=0; i<record.length; i++) {
String[] info = record[i].split(" ");
if (info[0].equals("Enter") || info[0].equals("Change")) {
map.put(info[1], info[2]);
}
// answer 배열의 크기를 선언하기 위해 들어오고 나가는 경우의 수(=count)를 센다.
if (info[0].equals("Enter") || info[0].equals("Leave")) {
count++;
}
}
// 2. 오픈 채팅방을 개설한 사람이 보는 메시지를 문자열 배열 answer에 저장한다.
String[] answer = new String[count];
int idx = 0;
for (int i=0; i<record.length; i++) {
String[] info = record[i].split(" ");
String nickname = map.get(info[1]);
if (info[0].equals("Enter")) {
answer[idx++] = nickname + "님이 들어왔습니다.";
}
if (info[0].equals("Leave")) {
answer[idx++] = nickname + "님이 나갔습니다.";
}
}
return answer;
}
}
'Algorithms > programmers' 카테고리의 다른 글
Programmers, 실패율 : Java (1) | 2022.12.10 |
---|---|
Programmers, [3차] 방금그곡 : Java (0) | 2022.12.08 |
Programmers, [1차] 다트 게임 : Java (0) | 2022.12.06 |
Programmers, [1차] 뉴스 클러스터링 : Java (0) | 2022.12.06 |
Programmers, [1차] 캐시 : Java (0) | 2022.12.02 |