문제
: 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 한다. 예를 들어AB는 1만큼 밀면BC가 되고, 3만큼 밀면DE가 된다.z는 1만큼 밀면a가 된다. 문자열 s와 거리 n을 입력받아 s를 n만큼 민 암호문을 만드는 함수, solution을 완성해 보아라.
제한 조건
입출력 예
s | n | result |
AB | 1 | BC |
z | 1 | a |
a B z | 4 | e F d |
알파벳과 관련된 알고리즘을 풀 때에는 아스키 코드표를 이용하면 훨씬 편해진다.
function solution(s, n) { let arr = []; n = n % 26 for ( let i = 0; i < s.length; i++ ) { const word = s.charCodeAt(i) if ( word == 32 ) { arr.push(" ") } else if ( word >= 65 && word <= 90 ){ if ( word+n > 90 ) { arr.push(String.fromCharCode(word+n-26)) } else { arr.push(String.fromCharCode(word+n)) } } else if ( word >= 90 && word <= 122 ){ if ( word+n > 122 ) { arr.push(String.fromCharCode(word+n-26)) } else { arr.push(String.fromCharCode(word+n)) } } } return arr.join("") }
N-Queens 알고리즘 (N x N 체스판에 N개의 퀸 체스말 놓기) (0) | 2019.06.09 |
---|---|
Find NthFibonacci without recursion(반복문을 이용한 n번째 피보나치 수 찾기) - Javascript (0) | 2019.06.09 |
124 나라의 숫자 (진법 변환의 원리 이해) - Javascript (0) | 2019.04.25 |
이상한 문자 만들기 - Javascript (0) | 2019.04.16 |
직사각형 별찍기 - Javascript (0) | 2019.04.10 |
댓글 영역