[프로그래머스] 시저암호 javascript

김_리트리버·2020년 9월 4일
0

[알고리즘]

목록 보기
11/47

https://programmers.co.kr/learn/courses/30/lessons/12926?language=javascript

function solution(s, n) {
    var answer = '';
    
//     시저암호 = 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 변경 
//     input 변경문자열, 밀어야 되는 길이 
//     output = 변경된 문자열 
    
//     a B z => e F d
//     문자하나를 이동을 시켜서 변경 

    let alpha = ['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'];
    
//     input 으로 들어오면 문자를 인식 -> alpha 배열에서 index 확인 -> n 만큼 이동 및 변경 
// a B z -> 공백은 alpha indexOf -1 
    
    let splitedString = s.split('');
  
    let returnArr = [];
    
    // 기본은 소문자로 옴 
    // 대문자 toLowerCase()
  
    for(let char of splitedString)
        
        {
            let lowerChar = char.toLowerCase()
//             원래 소문자인경우 
//             원래 대문자인 경우 
            
            let index = alpha.indexOf(lowerChar)

          
            if(index!==-1)
                
                {
                   index = index+n
                    if(index>=alpha.length)
                        
                        {
                            index = index - alpha.length;
                        }
                    if(char!==lowerChar)
                        
                        {
                            returnArr.push(alpha[index].toUpperCase())
                        }
                    
                    else {
                        returnArr.push(alpha[index])
                    }
                    
                }
            
            else {
                returnArr.push(char)
            }
                

        }
    
    return returnArr.join('');
}

profile
web-developer

0개의 댓글