https://school.programmers.co.kr/learn/courses/30/lessons/120838
function solution(letter) {
const morse = {
'.-':'a','-...':'b','-.-.':'c','-..':'d','.':'e','..-.':'f',
'--.':'g','....':'h','..':'i','.---':'j','-.-':'k','.-..':'l',
'--':'m','-.':'n','---':'o','.--.':'p','--.-':'q','.-.':'r',
'...':'s','-':'t','..-':'u','...-':'v','.--':'w','-..-':'x',
'-.--':'y','--..':'z'
};
const answer = [];
const letterArr = letter.split(" ");
for (const letter of letterArr) {
answer.push(morse[Object.keys(morse).find((v) => v === letter)]);
}
return answer.join("");
}
✔ morse 객체에서 키 전체를 가져와 letter와 비교한 후, 대응되는 값을 배열에 집어넣는 방식으로 풀이함
❗ 딱 봐도 불필요한 작업이 많아 보인다.
function solution(letter) {
const morse = {
'.-':'a','-...':'b','-.-.':'c','-..':'d','.':'e','..-.':'f',
'--.':'g','....':'h','..':'i','.---':'j','-.-':'k','.-..':'l',
'--':'m','-.':'n','---':'o','.--.':'p','--.-':'q','.-.':'r',
'...':'s','-':'t','..-':'u','...-':'v','.--':'w','-..-':'x',
'-.--':'y','--..':'z'
};
const answer = [];
return letter.split(" ").reduce((acc, cur) => acc + morse[cur], "");
}
✔ 확실히 reduce를 쓰니 코드가 간결해지고 직관적으로 변한 게 눈에 보인다.