프로그래머스 코딩테스트연습 오픈채팅방
레벨 2 치고는 쉬웠던 문제였다.
-
DB처럼 ID를 KEY, 닉네임을 VALUE로 하는 맵을 만든다.
-
split의 크기가 2보다 크다면 map에 넣어준다.
( map에 key 값이 같다면 value만 수정이 된다. )
( 닉네임이 변경되는 경우는 Enter, Change로 인한 크기가 3인 경우밖에 없다. ) -
이제 해당 기록을 변환하여 담을 리스트를 하나 생성한다
-
기록을 돌면서 행동이 Enter나 Leave일 경우 해당 ID를 대입해 닉네임을 리스트에 넣어준다.
-
result를 String[] 타입으로 변환해주면 끝.
toArray(generator)
generator(생성자)의 크기 지정이 리스트의 크기보다 작다면
자동으로 크기를 리스트의 크기에 맞게 지정해준다.
import java.util.*;
class Solution {
public String[] solution(String[] record) {
Map<String, String> mem_nick_map = new HashMap<>();
for (var rec : record) {
if(rec.split(" ").length > 2){
var id = rec.split(" ")[1];
var nickname = rec.split(" ")[2];
mem_nick_map.put(id, nickname);
}
}
List<String> result = new ArrayList<>();
for (var rec : record){
var behavior = rec.split(" ")[0];
var id = rec.split(" ")[1];
var nickname = mem_nick_map.get(id);
if (behavior.equals("Enter")) {
result.add(nickname + "님이 들어왔습니다.");
} else if (behavior.equals("Leave")) {
result.add(nickname + "님이 나갔습니다.");
}
}
return result.toArray(new String[0]);
}
}
Author And Source
이 문제에 관하여(프로그래머스 코딩테스트연습 오픈채팅방), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@yskim9718/프로그래머스-코딩테스트연습-오픈채팅방저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)