오픈채팅방

Seongjin Jo·2023년 7월 24일
0

프로그래머스 LV2

목록 보기
23/28

문제

풀이

import java.util.*;

class Solution {
    public ArrayList<String> solution(String[] record) {
        ArrayList<String> answer = new ArrayList<>();
        
        Map<String,String> map = new HashMap<>();
        
        // 다 돌리고나면 해당 아이디에 맞는 이름이 매칭 되어있을 것.
        for(String str : record){
            String[] info = str.split(" ");            
        
            if(info[0].equals("Leave")) continue;
            else if(info[0].equals("Enter")) map.put(info[1],info[2]);    
            else map.put(info[1],info[2]); //덮어 씌움
        }
        
        // 해당아이디 이름 불러와서 answer에 저장
        for(String str : record){
            String[] info = str.split(" ");
            String name = map.get(info[1]);
        
            if(info[0].equals("Enter")) answer.add(name + "님이 들어왔습니다.");
            else if(info[0].equals("Leave")) answer.add(name + "님이 나갔습니다.");
        }
        
        return answer;
    }
}

나는 이 문제 어려웠다. change의 경우를 기존에 map에서 key를 통해 찾아서 그냥 덮어 씌운다는 개념을 생각하지 못했따,,,,,,

이 문제는 결국엔 map에다가 해당 id에 맞는 이름을 최종적으로 덮어씌우면서 저장해두고, 다시 한번 record를 돌려서 answer에 저장해주면 되는거였다,,,,,

결론적으로 쉬운문제였는데, 집중하자

1개의 댓글

comment-user-thumbnail
2023년 7월 24일

개발자로서 성장하는 데 큰 도움이 된 글이었습니다. 감사합니다.

답글 달기