[프로그래머스/JS] 둘만의 암호

Yumin Jung·2023년 2월 2일
0

Problem Solving

목록 보기
3/5
post-thumbnail

문제 링크

해결 방법

function solution(s, skip, index) {
  	// 1
    const alphabetSet = new Set('abcdefghijklmnopqrstuvwxyz');
    skip.split("").map((e) => alphabetSet.delete(e));
  	// 2
    const alphabetExceptSkipThird = Array.from(alphabetSet).join("").repeat(3);
  	// 3
    return s.split("")
      		.map((e)=>alphabetExceptSkipThird[alphabetExceptSkipThird.indexOf(e)+index])
            .join("");
}
  1. 모든 알파벳이 포함된 집합을 만들고 skip에 해당하는 알파벳을 제거합니다.
  2. skip의 길이가 1~10이고 index의 값이 1~20이므로 1에서 얻은 Set을 Array로 변환시킨 뒤 세 번 반복시켜줍니다.
    • index를 skip을 제외한 문자의 개수로 나눈 나머지를 이용하여 풀이하는 방법도 있습니다.
  3. alphabetExceptSkipThird에서 s의 각 문자의 자리에서 index 만큼 더한 자리의 문자를 반환하고 이를 다시 문자열로 만들어줍니다.

0개의 댓글