프로그래머스 (코딩테스트 연습) - 오픈채팅방
해당 문제는 고유한 user_id 값이 주어졌기때문에 user_id를 키로 하고 값을 nickname으로 두는 해시 맵을 구성해 데이터를 저장 한 후 이후 record 를 돌면서 Enter 혹은 Leave 상황일때 메시지 로그를 user_id를 통해 마지막 Nickname 값을 가져와서 셋팅하도록 문제를 풀었습니다.
private static final String ENTER_POSTFIX = "님이 들어왔습니다.";
private static final String OUT_POSTFIX = "님이 나갔습니다.";
private static final String ENTER = "Enter";
private static final String CHANGE = "Change";
private static final String LEAVE = "Leave";
private static final String SPLIT_TEXT = " ";
public String[] solution(String[] record) {
List<String> answer = new ArrayList<>();
Map<String, String> idNickNameMap = new HashMap<>();
for (String infoStr : record) {
String[] info = infoStr.split(SPLIT_TEXT);
if (info[0].equals(ENTER)) {
idNickNameMap.put(info[1], info[2]);
} else if (info[0].equals(CHANGE)) {
idNickNameMap.put(info[1], info[2]);
}
}
for (String infoStr : record) {
String[] info = infoStr.split(SPLIT_TEXT);
if (info[0].equals(ENTER)) {
answer.add(idNickNameMap.get(info[1]) + ENTER_POSTFIX);
} else if (info[0].equals(LEAVE)) {
answer.add(idNickNameMap.get(info[1]) + OUT_POSTFIX);
}
}
return answer.toArray(new String[0]);
}
'정리 > 알고리즘' 카테고리의 다른 글
프로그래머스 - 폰켓몬 (0) | 2022.04.05 |
---|---|
프로그래머스 - 멀쩡한 사각형 (0) | 2022.04.04 |
프로그래머스 - 문자열압축 (0) | 2022.03.30 |
프로그래머스 - 크레인 인형뽑기 (0) | 2022.03.28 |
프로그래머스 - 키패드 누르기 (0) | 2022.03.25 |
댓글