[プログラマ]起動パスワード問題のJavaScriptアルゴリズム


[プログラマ]起動パスワード問題のJavaScriptアルゴリズム


https://programmers.co.kr/learn/courses/30/lessons/12926

Q.起動パスワード


1つの暗号化方法は、1つの文の各アルファベットを一定の距離で伸ばし、別のアルファベットに変換することです.例えば、「AB」は1で「BC」、3で「DE」を表す.「z」が1に等しいと「a」になります.文字列sと距離nを入力し、sがnの暗号文の関数を生成し、ソリューションを完了します.

せいげんじょうけん

  • スペースはいくら押しても空いています.
  • sには、小文字、大文字、スペースのみが含まれます.
  • sの長さは8000未満です.
  • nは1以上25以下の自然数です.
  • I/O例


    snresult"AB"1"BC""z"1"a""a B z"4"e F d"
  • コード
  • function solution(s, n) {
        var answer = '';
        const arr = Array.from({ length: 26 }, (v, i) => String.fromCharCode(i + 97));  // 소문자 배열 생성
        const arrA = Array.from({ length: 26 }, (v, i) => String.fromCharCode(i + 65)); // 대문자 배열 생성 
        var arrS = s.split("");  // 문자열 배열로 변환
    
        for(let i = 0; i<arrS.length; i++){
            if(arr.includes(arrS[i])){
                answer+=arr[(arr.indexOf(arrS[i])+n)%26]; //인덱수 수 26을 넘으면 안됨 => index수로 나눈 나머지 
            }else if(arrA.includes(arrS[i])){
                answer+=arrA[(arrA.indexOf(arrS[i])+n)%26];
            }else if(arrS[i]=" "){
                answer+=" "
            }
            
        }return answer;
    }