나의 풀이
function solution(s, skip, index) {
// 알파벳 배열을 만든다.
const dict = Array.from({length:26}, (_,i) => String.fromCharCode(i+97))
// skip 단어들을 filter를 통해 제거해준다.
const newDict = dict.filter( word => ![...skip].includes(word) )
// map을 사용하여 각각의 단어를 index만큼 뒤로 이동한다.
// indexOf 를 이용해서 5칸 뒤에 있는 값을 가져온다. ( 단, newDict의 length를 초과하면 나머지 계산으로 해결)
// 처음에 스프레드 연산자로 배열로 만들었고 map의 return 값도 배열이니 join을 사용해서 다시 문자열로 변경시켜준다.
return [...s].map((word)=> newDict[(newDict.indexOf(word) + index) % newDict.length]).join("")
}
아스키코드를 통해 전체를 풀어야 하나 생각하다가 번거로울 것 같아서 처음엔 쓰지 않았는데 알파벳을 전부 하나하나 입력하기 힘들어서
이것만 아스키코드로 풀었다.
전체적인 구상은 아예 dict를 만들어서 skip을 뺀뒤 그것을 참고해서 정답을 return하도록 생각해보았다.
'알고리즘 > 프로그래머스 - JS' 카테고리의 다른 글
[프로그래머스] level.1 삼총사 (0) | 2023.04.13 |
---|---|
[프로그래머스 - JS] level.1 체육복 (0) | 2023.02.17 |
[프로그래머스 - JS] level.1 다트 게임 (0) | 2023.01.31 |
[프로그래머스] level.1 이상한 문자 만들기 (0) | 2023.01.28 |
[프로그래머스-JS] level.1 모의고사 <완전탐색> / 다시풀기o (0) | 2023.01.17 |