반응형
문제설명
입력된 모스부호를 제시된 모스부호에 맞게 번역하는 문제
나의 풀이
입력받은 letter를 스페이스에 맞춰 split 하고 map으로 해당되는 값을 찾은 후에 join으로 합쳐주었다.
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'
}
let answer = letter.split(' ').map((v) => morse[v]).join('');
return answer;
}
대부분 비슷한 풀이였고 reduce를 사용한다면 아래처럼 된다.
function solution(letter) {
return letter.split(' ').reduce((prev, curr) => prev + morse[curr], '')
}
For문을 사용해도 되는 문제이다.
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'
}
let input = letter.split(' ')
let answer = ''
for (const i of input) {
answer += morse[i]
}
return answer
}
또는 아래처럼 진행해도 된다.
function solution(letter) {
let answer = '';
let messages = letter.split(" ");
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'
}
for(let i = 0 ; i < messages.length; i++) {
answer += morse[messages[i]];
}
return answer;
}
반응형
'Javascript > 코딩테스트-연습' 카테고리의 다른 글
[JavaScript] 2차원으로 만들기 - 프로그래머스 (24) | 2024.03.26 |
---|---|
[JavaScript] 구슬을 나누는 경우의 수 - 프로그래머스 (32) | 2024.03.26 |
[JavaScript] 개미군단 - 프로그래머스 (24) | 2024.03.25 |
[JavaScript] 진료순서 정하기 - 프로그래머스 (26) | 2024.03.25 |
[JavaScript] 외계행성의 나이 - 프로그래머스 (25) | 2024.03.23 |