머쓱이는 친구에게 모스부호를 이용한 편지를 받았습니다. 그냥은 읽을 수 없어 이를 해독하는 프로그램을 만들려고 합니다. 문자열 letter
가 매개변수로 주어질 때, letter
를 영어 소문자로 바꾼 문자열을 return 하도록 solution 함수를 완성해보세요.
모스부호는 다음과 같습니다.
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'
}
letter
의 길이 ≤ 1,000letter
의 모스부호는 공백으로 나누어져 있습니다.letter
에 공백은 연속으로 두 개 이상 존재하지 않습니다.letter | result |
---|---|
".... . .-.. .-.. ---" | "hello" |
".--. -.-- - .... --- -." | "python" |
입출력 예 #1
입출력 예 #2
{".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."}
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'
}
return letter.split(' ').map(e=> Object.values(morse)[Object.keys(morse).indexOf(e)]).join('');
}
Object.keys()
, Object.values()
결과는 배열로!
다른풀이
function solution(letter) {
return letter.split(' ').reduce((prev, curr) => prev + morse[curr], '')
}