본문 바로가기
프로그래머스/Lv.2

2019 KAKAO BLIND RECRUITMENT > 오픈채팅방 - JAVA

by 아찌방 2024. 1. 12.

 

 

https://school.programmers.co.kr/learn/courses/30/lessons/42888

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

풀이 - 나의 생각

User ID 와 닉네임이 있는데

 

유저가 닉네임을 변경하면

 

지금까지 나왔던 기록에서

 

해당 유저의 닉네임이 다 변경해야 됩니다.

 

그러기 위해서는 2가지만 하면 됩니다.

 

1. 유저의 닉네임 기록

2. 유저의 최종 닉네임으로 기록 남기기

 

1. 유저의 닉네임 기록

 

 HashMap을 사용해서

 

유저별 최종 닉네임을 기록합니다.

 

2. 유저의 최종 닉네임으로 기록 남기기

 

User ID로 닉네임을 불러와 기록합니다.

 

 

코드

 

import java.util.*;

class Solution {
    public String[] solution(String[] record) {
        Map<String, String> nickname = new HashMap<>();
        StringBuilder sb = new StringBuilder();
        
        for(String r : record){
            String[] op = r.split(" ");
            if("Leave".equals(op[0])) continue;
            
            nickname.put(op[1], op[2]);
        }
        
        for(String r : record){
            String[] op = r.split(" ");
            switch (op[0]) {
                case "Enter":
                    sb.append(nickname.get(op[1]) + "님이 들어왔습니다.\n");
                    break;
                case "Leave":
                    sb.append(nickname.get(op[1]) + "님이 나갔습니다.\n");
                    break;
            }
        }
        return sb.toString().split("\n");
    }
}

 

 

 

 

 

 

 

다음에 또 봐요

 

728x90