반응형
코딩테스트 연습 - 오픈채팅방
오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오
programmers.co.kr
// 문제 해설
// 1. user가 Change를 하거나 Leave 후 Enter를 해야 name을 변경이 가능하다.
// 2. user가 name을 변경하면 이전에 설정했던 name도 변경한 name으로 바뀐다.
public static String[] solution(String[] record) {
List<String> answer = new ArrayList<>();
HashMap<String, String> userIdName = new HashMap<>();
for(String str : record) {
String[] tempStr = str.split(" ");
// Enter, Change인 경우 userIdName에 넣어준다
// HashMap은 key가 같으면 값이 후에 들어오는 값으로 바뀐다
// key - userId, value - name
if(tempStr[0].equals("Enter") || tempStr[0].equals("Change")) {
userIdName.put(tempStr[1], tempStr[2]);
}
}
for(int i = 0 ; i < record.length ; i++) {
String[] tempStr = record[i].split(" ");
// key - userId에 해당되는 value 세팅
String answerStr = userIdName.get(tempStr[1])+"님이 ";
if(tempStr[0].equals("Enter")) {
answerStr += "들어왔습니다.";
answer.add(answerStr);
} else if(tempStr[0].equals("Leave")) {
answerStr += "나갔습니다.";
answer.add(answerStr);
}
}
return answer.toArray(new String[0]);
}
반응형
'개발 > 알고리즘' 카테고리의 다른 글
Programmers - 괄호 회전하기 (0) | 2021.12.29 |
---|---|
Programmers - [1차] 다트 게임 (0) | 2021.11.19 |
위클리 챌린지 - 최소직사각형 (Java, Javascript) (0) | 2021.11.18 |
Programmers - 크레인 인형뽑기 게임 (0) | 2021.09.09 |
Programmers - 위클리 4주차 (0) | 2021.09.06 |