-
프로그래머스 문제 풀기 - 모스부호(1)프로그래머스 문제 풀기 2023. 3. 22. 14:18728x90
프로그래머스 문제 풀기 - 모스부호 (1)
문제
모스부호로 된 변수 letter를 영어 소문자 문자열로 반환하는 것이다.
morse 부호가 담긴 배열이 주어지고 letter 변수에는 ".... . .-.. .-.. ---"가 담겨온다.
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' }이 문제에는 map과 split그리고 join 함수를 사용했다.
그렇다면 첫 번째로 해야 할 것은
1. 변수 letter에 담긴 데이터들을 나누기
자세히 보면 공백으로 구분되어 있는데 공백을 기준으로 하나씩 나누어줄 것이다.
let array = letter.split(' ');split를 사용해 공백을 기준으로 문자열을 나누었다. => ["....",".",".-..",".-..","---"];
2. key : value 이용하기
return morse["...."]위 코드를 입력하면 "h"가 반환되는 걸 알 수 있다. (morse를 자세히 보면 key : value로 이루어져 있다.)
3. map 함수를 이용해 morse[array 안의 요소] 넣고 반환하기
map를 이용하면 (x, i) 중에서 i 두 번째 인자로 쉽게 배열의 요소를 하나씩 돌릴 수 있다.
let array = letter.split(' '); return array.map((x,i)=> morse[array[i]]);array.map((x, array의 길이)) => morse[array[0 ~ array 변수 길이만큼 반복]]);key 값 = morse["...."] / value 값 = "h"
이렇게 하면 ' "h", "e", "l", "l", "o" ' 가 반환된다.
4. 하나의 문자열로 합쳐주기
하나로 합쳐주기 위해 join 함수를 이용한다.
return array.map((x,i)=> morse[array[i]]).join("");위 코드를 통해 letter의 모스부호를 해석한 "hello"가 반환된다.
전체적인 코드
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 array = letter.split(' '); return array.map((x,i)=> morse[array[i]]).join(""); }반응형'프로그래머스 문제 풀기' 카테고리의 다른 글
프로그래머스 코딩 입문 문제.js - 외계어 사전 (0) 2023.11.24 숨어있는 숫자의 덧셈(2) - 프로그래머스 문제 (0) 2023.03.27 코딩테스트 연습 - 편지 (0) 2022.12.30 코딩 테스트 연습 - 아이스 아메리카노 (0) 2022.12.28 코딩테스트 연습 - 피자나눠먹기3 (0) 2022.12.28