250x250
Notice
Recent Posts
Recent Comments
Link
«   2025/10   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

devlog_owen

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

algorithm/(js)프로그래머스

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

developer_owen 2023. 11. 7. 01:05
728x90

문제

 

대문자, 소문자 따로 진행해야함

 


 

 

나의 풀이

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

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



   

1. upper,lower 변수: 대문자,소문자 알파벳 나타내는 문자열

 let upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

    let lower = "abcdefghijklmnopqrstuvwxyz";

2. 문자열 s를 문자 단위로 반복하여 처리
    for(let i =0; i <s.length; i++){ //

3. 현재 문자를 text 변수에 저장, 공백 문자면 그대로 두고 answer에 추가, continue로 다음으로 넘어감
        let text = s[i]; 
        if(text == ' ') { 
            answer += ' '; 
            continue; 
        }

4. 현재 문자가 대문자인지 소문자인지 확인, 변수에 맞는 알파벳 문자열(upper 또는 lower)을 할당
        let textArr = upper.includes(text) ? upper : lower; //
        let index = textArr.indexOf(text)+n; //textArr 

5.n 만큼 이동하고 결과가 알파벳 문자열 길이를 넘어가면 순환시킴, 암호화된 문자를 answer에 추가
        if(index >= textArr.length) index -= textArr.length;
        answer += textArr[index];
    }
    return answer;
}




 


 

다른 사람 풀이

 

본문1


 

회고

 

본문1


 

 

 

 

728x90