프로그래머스 Lv.1 시저 암호
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | function solution(s, n) { let answer = s.split(''); let result = ''; for(let i = 0; i < answer.length; i++) { if(answer[i] === ' ') { result += ' '; } else { let a = answer[i].charCodeAt(0) + n; if(answer[i].charCodeAt(0) >= 65 && answer[i].charCodeAt(0) <= 90) { if(a > 90) a -= 26; } else if(answer[i].charCodeAt(0) >= 97 && answer[i].charCodeAt(0) <= 122) { if(a > 122) a -= 26; } result += String.fromCharCode(a); } } return result; } | cs |
문자열
s
를split
을 이용해 분해하여answer
에 할당해준다.반복문을 0부터
answer
의 길이 만큼 반복한다.만약
answer[i]
가 한 칸 띈 공백이면 빈 문자열result
에 한 칸 띈 공백을 더해준다.만약
answer[i]
가 문자이면 아스키코드화 시켜서n
을 더해주고,a
에 할당한다.아스키코드화 시킨 숫자가 65(A)~90(Z) 사이일때 90(Z)을 넘는다면
a
에서 26을 빼서 다시 65(A)부터 시작하게 한다.마찬가지로 아스키코드화 시킨 숫자가 97(a)~122(z) 사이일때 122(z)을 넘는다면
a
에서 26을 빼서 다시 97(a)부터 시작하게 한다.아스키코드가 할당된
a
를 다시 문자로 변환하여result
에 더해준다.