반응형
Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
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
관리 메뉴

undefined

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

Coding Test

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

JavaScripter 2022. 6. 5. 01:20
반응형

문제 설명

 


문제 풀이

function solution(s, n) {
   const upAlphaInner = Array.from(Array(26)).map((t,i) => i + 65)
   const loAlphaInner = Array.from(Array(26)).map((t,i) => i + 97)
    const upAlphabet = upAlphaInner.map(t => String.fromCharCode(t))
    const loAlphabet = loAlphaInner.map(t => String.fromCharCode(t))
    
    let answer = ""
    
    for(let i = 0; i < s.length; i++) {
        
        let char = s[i]
        
        if(char === " ") {
            answer += " "
            continue
        }
        
        let array = upAlphabet.includes(char) ? upAlphabet : loAlphabet
        let index = array.indexOf(char)+n
        
        if(index >= array.length) {
            index -= array.length
        }
        
        answer += array[index]
    }
    return answer
}

1. UTF-16코드를 활용하여 a~z / A~Z 배열을 만듬.

 

2. for루프 이용하여 문자열의 문자 하나하나마다 적용

 

3. 공백은 아무리 밀어도 공백이라는 조건에 충족시키기위해 continue 활용

 

4. array와 index 정함

 

5. z의 경우를 해결하기 위하여 array의 길이를 넘어서면 다시 1부터 계산되도록 함

 

6. answer로 해당 배열의 n만큼 민 index의 값을 가져옴


개선 사항

반응형
Comments