우파루파의 개발 기록

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

development/알고리즘

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

upa-r-upa 2022. 8. 21. 13:47

안녕하세요. 이번 문제는 프로그래머스 1단계 - 시저 암호 입니다.

이번 문제는 처음 문제를 읽었을 땐 쉽다고 생각했는데, 사소한 부분에서 막혀 곤란한 문제였습니다.

 

알고리즘 설명

비교를 줄이기 위해 대문자로 글자를 변환하여 예외 처리를 진행했습니다.

function solution(s, n) {
    return s.split("").map((str) => {
        if (str === " ") {
            return str;
        } else {
            const origin = str.toUpperCase().charCodeAt() + n;
            const result = origin > 90 ? str.charCodeAt() - 26: str.charCodeAt(); 
            return String.fromCharCode(result + n);
        }
        
    }).join("");
}

이번 문제는 풀면서 static하게 풀 것인지, 아니면 아스키코드를 활용해 풀 것인지를 고민 했는데요.

저는 이번 정답에서 아스키코드를 사용해 풀었지만, 다른 정답을 참조해보니 static하게 푼 분들도 많더라구요. 

여러모로 대단한 코드

위 풀이는 정말 유쾌한 풀이인 것 같습니다. 

아스키코드 없는 정석적인 풀이

해당 풀이는 초반에 생각했던 내용과 거의 흡사한 것 같아요. 코드를 깔끔해보이게 잘 짜주셨네요.

다음엔 성격 유형 검사 문제를 풀도록 하겠습니다.

 

 

피드백은 언제나 환영이니 부탁드립니다.

감사합니다.