728x90
SMALL
문제 이해
- 오픈채팅방에 들어오거나 나갈때 문자열로 기록이 된다.
- 오픈채팅방을 나갔다가 같은 아이디로 들어왔을때 닉네임이 변경되어있으면 기록된 문자열에 닉네임도 바뀌어야한다.
- 채팅방을 나가지 않고 닉네임을 변경하였을 경우도 문자열의 닉네임이 바뀌어야한다.
- 배열의 길이는 100,000 건으로 for문 내에 함수를 사용하거나 메모리 사용량이 적은걸로만 사용해야한다.
- map을 생성하고 key = id , value = 닉네임 형태로 배열전체를 돌면서 설정한다.
- map에 id로 할당된 닉네임이 최종 닉네임이다.
import java.util.*;
class Solution {
public String[] solution(String[] record) {
Map<String, String> map = new HashMap<>();
List<String> result = new ArrayList();
for(int i = 0; i<record.length; i++){
String[] temp = record[i].split(" ");
if(!"Leave".equals(temp[0])){
map.put(temp[1], temp[2]);
}
}
for(int i = 0; i<record.length; i++){
String[] temp = record[i].split(" ");
if("Enter".equals(temp[0])){
result.add(map.get(temp[1]) + "님이 들어왔습니다.");
}else if("Leave".equals(temp[0])){
result.add(map.get(temp[1]) + "님이 나갔습니다.");
}
}
String[] answer = new String[result.size()];
for(int i = 0; i<result.size(); i++)
answer[i] = result.get(i);
return answer;
}
}
728x90
LIST
'자바 > 코딩테스트' 카테고리의 다른 글
[프로그래머스] 하노이의 탑 - Java(자바) (0) | 2024.04.08 |
---|---|
[프로그래머스] 정수 삼각형 - Java(자바) (0) | 2024.04.08 |
[프로그래머스] 스킬트리 - Java(자바) (0) | 2024.04.02 |
[프로그래머스] 땅따먹기 - Java(자바) (0) | 2024.04.02 |
[프로그래머스] 방문 길이 - Java(자바) (1) | 2024.04.01 |