본문 바로가기
알고리즘 & 자료구조/프로그래머스

오픈채팅방

by 신재권 2022. 3. 28.
package programmers;

import java.util.HashMap;
import java.util.Map;
import java.util.StringTokenizer;

class Solution {
	public String[] solution(String[] record) {
		StringTokenizer st;
		Map<String, String> user = new HashMap<>();
		int cnt = 0;
		for (String s : record) {
			st = new StringTokenizer(s);
			String state = st.nextToken();
			String uid = st.nextToken();
			String name = null;
			if (!state.equals("Leave")) {
				name = st.nextToken();
			}
			if (state.equals("Enter")) {
				cnt++;
				if (!user.containsKey(uid)) {
				} else {
					user.remove(uid);
				}
				user.put(uid, name);
			} else if (state.equals("Change")) {
				user.put(uid, name);
			} else if (state.equals("Leave")) {
				cnt++;
			}
		}
		String[] answer = new String[cnt];
		int i = 0;
		for (String s : record) {
			st = new StringTokenizer(s);
			String state = st.nextToken();
			String uid = st.nextToken();
			if (state.equals("Enter")) {
				String name = user.get(uid);
				answer[i++] = name + "님이 들어왔습니다.";
			} else if (state.equals("Leave")) {
				String name = user.get(uid);
				answer[i++] = name + "님이 나갔습니다.";
			} else {
				continue;
			}

		}
		return answer;
	}

}

간단하게 map으로 uid, name을 받아 최종적으로 맞게 출력 

'알고리즘 & 자료구조 > 프로그래머스' 카테고리의 다른 글

크레인 인형뽑기 게임  (0) 2022.03.30
숫자 문자열과 영단어  (0) 2022.03.29
문자열 압축 [Java]  (0) 2022.03.12
신규 아이디 추천[Java]  (0) 2022.03.09
신고 결과 받기 [Java]  (0) 2022.03.08