개발/코딩

[프로그래밍] 프로그래머스 예제문제 풀어보기 <오픈채팅방> (실패)

mabb 2022. 3. 20. 22:46
반응형

 머리가 안돌아가서 엄청나게 지저분하게 코딩을 해버림.
해쉬맵에 아이디 닉네임을 먼저 매핑시킨 후 record를 기록하면 되는건데 왜 이렇게 했을까.
테스트도 실패함.

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
30
31
32
33
34
35
36
37
38
39
import java.util.List;
import java.util.HashMap;
import java.util.ArrayList;
 
class Solution {
    public String[] solution(String[] record) {
       List<String> answerNick = new ArrayList<>();
       List<String> answerArr = new ArrayList<>();
       HashMap<String,String> idMap = new HashMap<>();
        for(String rec:record) {
            if(rec.startsWith("Enter")) {
                answerArr.add(rec.split(" ")[1]+"님이 들어왔습니다.");
                idMap.put(rec.split(" ")[1],rec.split(" ")[2]);
                
            }else if(rec.startsWith("Leave")){
                answerArr.add(rec.split(" ")[1]+"님이 나갔습니다.");
                
            }else if(rec.startsWith("Change")) {
                idMap.put(rec.split(" ")[1],rec.split(" ")[2]);
                
            }
        }
        
        for(String ans: answerArr) {
            for(String id: idMap.keySet()) {
                if (ans.contains(id)){
                    ans = ans.replace(id, idMap.get(id));
                    answerNick.add(ans);    
                }                
            }
        }
        String[] answer = new String[answerNick.size()];
        for(int i =0 ; i<answerNick.size();i++) {
            answer[i] = answerNick.get(i);
            }
        return answer;
    }
}
 
cs

출처: 프로그래머스 채점결과

 

반응형