728x90
문제
머쓱이는 친구에게 모스부호를 이용한 편지를 받았습니다. 그냥은 읽을 수 없어 이를 해독하는 프로그램을 만들려고 합니다. 문자열 letter가 매개변수로 주어질 때, letter를 영어 소문자로 바꾼 문자열을 return 하도록 solution 함수를 완성해보세요.모스부호는 다음과 같습니다.
해결 과정
function solution(letter) {
let 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 removeGap = letter.split(' '); // 공백 제거 -> 배열로 저장됨
let answer = [];
for(let i = 0; i < removeGap.length; i++) {
answer += morse[removeGap[i]];
}
return answer;
}
split함수를 이용해서 letter의 공백을 제거해 removeGap변수에 지정했다.
그리고 for문을 이용하여 removeGap의 길이만큼 반복을 했을때
answer에 저장하게 했다.
그렇다면 왜? morse[removeGap[i]]로 했냐면
예시) let morse = {'가':1}일때,
m2 = ['가']이다. m2의 0번째 인덱스는 가를 의미한다.
그래서 morse[removeGap[i]작성했다.
새롭게 알게된 점
function solution(letter) {
let 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(v=>morse[v]).join('');
}
letter.spilt(' ')을 이용하여 공백을 기준으로 배열을 만들었다.
그 뒤 map을 이용하여 morse에 해당하는 알파벳을 반환하고 join으로 합쳤다.
728x90
'⌨️ 프로그래머스 > 코딩테스트 입문' 카테고리의 다른 글
[프로그래머스] 머쓱이보다 키 큰 사람 🏫 | JS (0) | 2024.06.27 |
---|---|
[프로그래머스] #35 가위 바위 보 ✌🏻✋🏻✊🏻| JS (0) | 2024.06.25 |
[프로그래머스] #33 개미군단 구하기 🐜 | JS (0) | 2024.06.04 |
[프로그래머스] 순서쌍의 개수 | JS (0) | 2024.06.03 |
[Programmers] 진료순서 정하기 🏥 | JS (0) | 2024.06.03 |