๐ [ํ๋ก๊ทธ๋๋จธ์ค ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด] 2019 ์นด์นด์ค ๋ธ๋ผ์ธ๋ - ์คํ ์ฑํ ๋ฐฉ ๋ฌธ์ ํ์ด
๐ ๋ฌธ์
2019 ์นด์นด์ค ๋ธ๋ผ์ธ๋ - ์คํ ์ฑํ ๋ฐฉ ๋ฌธ์
https://programmers.co.kr/learn/courses/30/lessons/42888
๐ ์ ๊ทผ๋ฒ
2019 ์นด์นด์ค ๋ธ๋ผ์ธ๋ - ์คํ ์ฑํ ๋ฐฉ ๋ฌธ์ ์ ๋๋ค.
์ฑํ ๋ฐฉ์ ๋ค์ด์ค๊ณ ๋๊ฐ๊ฑฐ๋, ๋๋ค์์ ๋ณ๊ฒฝํ ๊ธฐ๋ก์ด ๋ด๊ธด ๋ฌธ์์ด ๋ฐฐ์ด record๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๋ชจ๋ ๊ธฐ๋ก์ด ์ฒ๋ฆฌ๋ ํ,
์ต์ข ์ ์ผ๋ก ๋ฐฉ์ ๊ฐ์คํ ์ฌ๋์ด ๋ณด๊ฒ ๋๋ ๋ฉ์์ง๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ์ ๋๋ค.
๊ฐ ์ ์ ๋ง๋ค ๊ณ ์ ํ uid๊ฐ ์๊ณ ๋ณ๋ช ๊ฐ์ ๊ฒฝ์ฐ์๋ ๋๊ฐ๋ค๊ฐ ๋ค์ ๋ค์ด์ค๊ฑฐ๋
Change๋ก ๋ณ๋ช ์ ๋ฐ๊ฟ ์ ์์ต๋๋ค.
์ฌ๊ธฐ์ ํ์ธํด์ผํ ๊ฒ์ ์ต์ข ์ ์ผ๋ก ๋ฐฉ์ ๊ฐ์คํ ์ฌ๋์ด ๋ณด๊ฒ ๋๋ ๋ฉ์์ง์ ๋๋ค.
์ ์ ๊ฐ ๋ค์ด๊ฐ๊ณ ๋๊ฐ๋ ๋ชจ๋ ๋ฉ์์ง๋ค์ ํ์ํด์ค์ผ ํ๋๋ฐ
๋จ, ๋ชจ๋ ๋๋ค์ ๋ณ๊ฒฝ์ด ๋๋ ํ ํด๋น ์ต์ข ๋๋ค์์ผ๋ก ํ์ํด์ค์ผํฉ๋๋ค.
์ฐ์ , ๊ฐ Enter, Leave ๊ฐ์ ๋ช ๋ น๋ง๋ค ๋ฌธ์์ด ๋ฉ์์ง๋ก ํ์ํด์ฃผ๊ธฐ ์ํด
commandMessageMap ์ ๊ฐ ๋ช ๋ น๋ง๋ค ๋ฉ์์ง๋ฅผ ์ด๊ธฐํ ํด์ค๋๋ค.
๊ทธ๋ฆฌ๊ณ nicknameMap ์ ์ฌ์ฉ์์ uid , ๋๋ค์์ ๋ฃ์ด ์ต์ข ์ ์ผ๋ก๋
๋ง์ง๋ง ๋๋ค์์ด ๊ฐ uid์ ์ ์ฅ๋๊ฒ ํฉ๋๋ค.
๊ทธ ํ,
record ๋ค์ ํ์ํ๋ฉฐ Change์ธ ๊ฒฝ์ฐ๋ฅผ ์ ์ธํ๊ณ
๊ฐ ๊ธฐ๋ก๋ค์ ๋ฌธ์์ด ๋ฉ์์ง๋ก ์ ์ฅํด์ฃผ๋ฉด ๋ต์ ๊ตฌํ ์ ์์ต๋๋ค.
Map ์ ์ ์ด์ฉํ๋ฉด ๋๋ ๋ฌธ์ ์์ต๋๋ค.
๐ป ์ฝ๋
package problem.programmers;
import java.util.*;
class Solution {
static Map<String,String> commandMessageMap;
static Map<String,String> nicknameMap = new HashMap<>();
public String[] solution(String[] record) {
List<String> answerList = new ArrayList<>();
commandMessageMapInit();
setNicknameMap(record);
for(int i=0; i<record.length; i++){
String[] temp = record[i].split(" ");
StringBuilder sb = new StringBuilder();
String command = temp[0];
String uid = temp[1];
if(!command.equals("Change")) {
String commandMessage = commandMessageMap.get(command);
sb.append(nicknameMap.get(uid) + "๋์ด " + commandMessage);
answerList.add(sb.toString());
}
}
String[] answer = new String[answerList.size()];
answerList.toArray(answer);
return answer;
}
private void setNicknameMap(String[] record){
for(int i=0; i<record.length; i++){
String[] temp = record[i].split(" ");
String command = temp[0];
String uid = temp[1];
if(temp.length>2) {
String nickname = temp[2];
nicknameMap.put(uid, nickname);
}
}
}
private void commandMessageMapInit(){
commandMessageMap = new HashMap<>();
commandMessageMap.put("Enter","๋ค์ด์์ต๋๋ค.");
commandMessageMap.put("Leave","๋๊ฐ์ต๋๋ค.");
}
}