Home P42888. 오픈채팅방
Post
Cancel

P42888. 오픈채팅방

문제

image

제출 코드

  • 사용 알고리즘 : 자료구조, 문자열

아이디 별로 닉네임을 저장하는 map을 만들어서, 닉네임이 변할때마다 저장된 값을 바꿔주면서 관리하면 쉽게 풀 수 있는 문제.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import java.util.*;

class Solution {
    public String[] solution(String[] record) {
        Map<String, String> log = new HashMap<String, String>();

        int cnt = 0;
        for(String str : record){
            String[] s = str.split(" ");
            if(s[0].charAt(0)!='C') cnt++;
            if(s[0].charAt(0)=='L') continue;
            else if(!log.containsKey(s[1])){
                log.put(s[1], s[2]);
            }else {
                log.replace(s[1], s[2]);
            }
        }

        String[] answer = new String[cnt];
        int i = 0;
        for(String str : record){
            String[] s = str.split(" ");
            if(s[0].charAt(0)=='E') answer[i++] = log.get(s[1]) + "님이 들어왔습니다.";
            else if(s[0].charAt(0)=='L') answer[i++] = log.get(s[1]) + "님이 나갔습니다.";
        }

        return answer;
    }
}
This post is licensed under CC BY 4.0 by the author.