본문 바로가기
Algorithm/카카오

[Algorithm][프로그래머스] - 오픈채팅방

by Lee David 2022. 9. 5.
반응형
문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/42888?language=java

내 풀이
import java.lang.*;
import java.util.*;
class Solution {
    
    public String[] solution(String[] record) {
        List<String> answer = new ArrayList();
        Map<String, String> map = new HashMap<>();
        
        for(String r : record) {
            String[] log = r.split(" ");
            String type = log[0];
            String uId = log[1];
            String oId = log.length == 2 ? "" : log[2];
            if(!type.equals("Leave")) {
                map.put(uId, oId);
            }
        }
        
        for(String r : record) {
            String[] log = r.split(" ");
            String type = log[0];
            String uId = log[1];
            String oId = map.get(uId);
            if(type.equals("Enter")) {
                answer.add(oId + "님이 들어왔습니다.");
            } else if(type.equals("Leave")) {
                answer.add(oId + "님이 나갔습니다.");
            }
        }
        
        return answer.toArray(new String[0]);
    }
       
}
결과

난이도 2정도는 조금 고민하면 풀 수 있는 정도 인것 같다. 그래도 유형별로 풀어봐야 할것 같다.

무난한게 통과하려면 3~4 정도는 가뿐하게 풀어야 할텐데... 조금씩 더 해봐야 겠다.

반응형