2018~2019/Level 1
시저 암호 [JavaScript]
전기도둑
2018. 10. 1. 22:48
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 | function solution(s, n) { var answer = ''; answer = s.split('').map(a => { var code = a.charCodeAt(0); if(code === 32) return ' '; if(code >= 65 && code <= 90) { if(code+n > 90) return String.fromCharCode(code+n-26); else return String.fromCharCode(code+n); } else if(code >= 97 && code <= 122) { if(code+n > 122) return String.fromCharCode(code+n-26); else return String.fromCharCode(code+n); } }).join(''); return answer; } |
- 문자열을 split하여 요소로 쪼갠다.
- map을 통해 아스키코드 값을 구한다.
- 공백인 경우(아스키 코드 값 32) 그대로 공백을 반환한다.
- 65~90 대문자인 경우와 97~122 소문자인 경우를 나눈다.
- 90과 122을 넘어가는 경우 26을 빼준다.
- join을 통해 다시 문자열을 합친다.