알고리즘 자료구조
2019 KAKAO BLIND RECRUITMENT 오픈채팅방 문제[Java,Js]
Zeta050525
2022. 8. 1. 11:09
728x90
https://school.programmers.co.kr/learn/courses/30/lessons/42888?language=javascript
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr


Java
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
class Solution {
public List<String> solution(String[] record) {
List<String> answer = new ArrayList<>();
List<String[]> Nickname = new ArrayList<>(); //초기 닉네임만
List<String> temp = new ArrayList<>(); //초기 닉네임을 위한 temp 배열
HashMap<String,String> NickName = new HashMap<String,String>();
for(var x : record){
String[] arr = x.split(" ");
if(!arr[0].equals("Leave")){
NickName.put(arr[1], arr[2]);
}
}
// for(var i : NickName.keySet()){
// System.out.println(i + ":" + NickName.get(i));
// }
for(var x : record){
String[] arr = x.split(" ");
if(arr[0].equals("Enter")){
answer.add(NickName.get(arr[1]) +"님이 들어왔습니다.");
}
else if(arr[0].equals("Leave")){
answer.add(NickName.get(arr[1]) +"님이 나갔습니다.");
}
}
return answer;
}
}
후기
HashMap을 사용하면 간단하게 풀수있다. 비몽사몽한 상태로 풀었더니 Hashmap은 생각못하고
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
class Solution {
public List<String> solution(String[] record) {
List<String> answer = new ArrayList<>();
List<String[]> Nickname = new ArrayList<>(); //초기 닉네임만
List<String> temp = new ArrayList<>(); //초기 닉네임을 위한 temp 배열
for(var x : record){
String[] arr = Arrays.copyOfRange(x.split(" "), 1, 3);
if(temp.indexOf(arr[0]) == -1){
temp.add(arr[0]);
Nickname.add(arr);
}else continue;
}
for(var x : record){
String[] arr = x.split(" ");
if(!arr[0].equals("Leave")){
int idx = temp.indexOf(arr[1]);
Nickname.get(idx)[1] = arr[2];
}
}
for(var x : record){
String[] arr = x.split(" ");
if(arr[0].equals("Enter")){
int idx = temp.indexOf(arr[1]);
answer.add(Nickname.get(idx)[1] +"님이 들어왔습니다.");
}
else if(arr[0].equals("Leave")){
int idx = temp.indexOf(arr[1]);
answer.add(Nickname.get(idx)[1] +"님이 나갔습니다.");
}
}
// for(var x : Nickname){
// System.out.println(Arrays.toString(x));
// }
return answer;
}
}
요따구로 풀었다가 자꾸 시간초과가나서 for줄이려면 어떡하지 하면서 HashMap으로 풀었따.
728x90