diff --git a/programmers/오픈채팅방/solution.java b/programmers/오픈채팅방/solution.java new file mode 100644 index 0000000..1d73c68 --- /dev/null +++ b/programmers/오픈채팅방/solution.java @@ -0,0 +1,39 @@ +// [문제 링크]: https://school.programmers.co.kr/learn/courses/30/lessons/42888 + +import java.util.HashMap; +import java.lang.StringBuilder; +import java.util.ArrayList; +class Solution { + public String[] solution(String[] record) { + HashMap hm = new HashMap<>(); + ArrayList al = new ArrayList<>(), al2 = new ArrayList<>(); + StringBuilder sb = new StringBuilder(); + for(String r : record){ + String[] temp = r.split(" "); + String job = temp[0], uid = temp[1], name = "", msg=""; + if(temp.length==3) { + name = temp[2]; + hm.put(uid,name); + } + switch(job){ + case "Enter": + msg = "님이 들어왔습니다."; + break; + case "Leave": + msg = "님이 나갔습니다."; + break; + } + if(!msg.equals("")) { + al.add(uid); + al2.add(msg); + } + } + for(int a = 0; a < al.size(); a++){ + sb.append(hm.get(al.get(a))); + sb.append(al2.get(a)); + al.set(a,sb.toString()); + sb.setLength(0); + } + return al.toArray(String[]::new); + } +} \ No newline at end of file