728x90
반응형
(1) 내 코드
function solution(s, n) {
let answer = '';
for (let i = 0; i < s.length; i++) {
//문자 -> 아스키코드
//str.charCodeAt(index)
let ascii = s.charCodeAt(i);
if (ascii >= 65 && ascii <= 90) {
//대문자인 경우, n만큼 더하기
ascii += n;
if (ascii > 90) {
//대문자Z를 넘어가면 A로
ascii -= 26;
}
} else if (ascii >= 97 && ascii <= 122) {
//소문자인경우, n만큼 더하기
ascii += n;
if (ascii > 122) {
//소문자z를 넘어가면 a로
ascii -= 26;
}
}
////String.fromcharCode(아스키숫자)
answer += String.fromCharCode(ascii);
}
return answer;
}
1) 아스키코드 변환
문자 -> 아스키 변경 : str.charCodeAt(index)
아스키 -> 문자 변경 : String.fromCharCode(아스키코드)
2) 대문자인 경우 (65~90) / 소문자인 경우 (97~122)
3) Z는 A 출력을 위해 26개의 대문자( 또는 소문자) 개수 26개를 빼서 다시 A로
4) 아스키코드에서 문자로 변경해서 출력
2. 다른 사람 풀이
function solution(s, n) {
var upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var lower = "abcdefghijklmnopqrstuvwxyz";
var answer= '';
for(var i =0; i <s.length; i++){
var text = s[i];
if(text == ' ') {
answer += ' ';
continue;
}
var textArr = upper.includes(text) ? upper : lower;
var index = textArr.indexOf(text)+n;
if(index >= textArr.length) index -= textArr.length;
answer += textArr[index];
}
return answer;
}
* 아스키 코드 없이 사용함
끝.
반응형
'코딩테스트' 카테고리의 다른 글
[프로그래머스 | JavaScript] 문자열 내 마음대로 정렬하기 (0) | 2023.12.14 |
---|---|
[프로그래머스 | JavaScript] 숫자 문자열과 영단어 (0) | 2023.12.13 |
[프로그래머스 | JavaScript] 최소직사각형 (0) | 2023.12.01 |
[프로그래머스 | JavaScript] 크기가 작은 부분문자열 (0) | 2023.11.30 |
[프로그래머스 | JavaScript] 삼총사 (0) | 2023.11.30 |