코딩테스트 연습 33: [프로그래머스] 시저 암호

gyomni·2022년 2월 18일
0

Algorithm

목록 보기
33/33
post-thumbnail

출처 : 프로그래머스
사용 언어 : JavaScript

초기 코드

function solution(s, n) {
    var answer = '';
    return answer;
}

내가 작성한 코드

function solution(s, n) {
    let answer = [];
    let alphabet;
    let arr=[];
    
    const upper = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
    const lower = 'abcdefghijklmnopqrstuvwxyz';
    
    const upLo= upper.concat(upper).split("");
    const loUp= lower.concat(lower).split("");
    

    alphabet=s.split("")
    
    for(let i=0;i<alphabet.length;i++){

        let alpha = alphabet[i];
       
        if(alpha===" "){
            arr.push(" ")
            
        }else if(alpha===alpha.toUpperCase()){
            
            let num1=upLo.indexOf(alpha);
            arr.push(upLo[num1+n]);
            
        }else if(alpha===alpha.toLowerCase()){
            let num2=loUp.indexOf(alpha);
            arr.push(loUp[num2+n]);
            
        }
        
    }
    answer=arr.join("")
    return answer;
}
    

다른 사람 풀이

function solution(s, n) {
    var upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    var lower = "abcdefghijklmnopqrstuvwxyz";
    var answer= '';

    for(var i =0; i <s.length; i++){
        var text = s[i];
        if(text == ' ') {
            answer += ' '; 
            continue;
        }
        var textArr = upper.includes(text) ? upper : lower;
        var index = textArr.indexOf(text)+n;
        if(index >= textArr.length) index -= textArr.length;
        answer += textArr[index];
    }
    return answer;
}

🙍‍♀️ 📝

삼항연산자로 더 간단하게 풀어낼 수 있다!

indexOf(), lastIndexOf() , findIndex() 구분!

  • indexOf()
    • 호출한 String 객체나 배열에서 주어진 값과 일치하는 첫 번째 인덱스를 반환.
    • 일치하는 값이 없으면 -1을 반환.
    • 매개변수에 아무 값도 주어지지 않으면 문자열 "undefined"를 찾으려는 문자열로 사용.
    • 오른쪽 방향으로 순번이 매겨진다.

  • lastIndexOf()
    • 주어진 값과 일치하는 부분을 fromIndex로부터 역순으로 탐색하여, 최초로 마주치는 인덱스를 반환.
    • 일치하는 부분을 찾을 수 없으면 -1을 반환.
    • 매개변수에 빈 값을 제공할 경우 fromIndex를 반환.

  • findIndex()
    • 주어진 판별 함수를 만족하는 첫 번째 요소에 대한 인덱스를 반환.
    • 만족하는 요소가 없으면 -1을 반환.
    • 콜백 함수가 true를 반환 할 때까지 배열의 모든 배열 인덱스 0..length-1 (포함)에 대해 한 번씩 콜백 함수를 실행하고,
      이러한 요소가 발견되면 findIndex는 해당 반복에 대한 색인을 즉시 반환.
    • 배열에 존재하지 않는 엔트리의 인덱스에 대해서조차 콜백이 호출됨.
profile
Front-end developer 👩‍💻✍

0개의 댓글