| 제출
function solution(s, n) {
const upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
const lower = "abcdefghijklmnopqrstuvwxyz";
let answer = "";
for (let i = 0; i < s.length; i++) {
const word = s[i];
if (word === " ") {
answer += " ";
continue;
}
const arr = upper.includes(word) ? upper : lower;
let index = arr.indexOf(word) + n;
if (index >= arr.length) index -= arr.length;
answer += arr[index];
}
return answer;
}
| 풀이과정
소문자는 소문자 그룹 안에서, 대문자는 대문자 그룹 안에서 알파벳이 밀리고 있기 때문에 소문자로 이루어진 문자열 lower과 대문자로 이루어진 문자열 upper가 필요하다.
입력받은 문자열이 공백인지, 소문자인지, 대문자인지에 따라서 알파벳을 변경시키고 빈 문자열인 answer에 변경된 값들을 더해서 답을 완성시키면 된다.
신경써야할 부분은 "z"가 1 밀렸을 때 "a"가 된다는 것이다. 제출한 코드에서는 주어진 알파벳이 n만큼 더해진 인덱스가 알파벳이 속한 그룹의 길이보다 길다면 인덱스에서 그 길이만큼 빼주는 식으로 처리하였다.
++) upper, lower 문자열을 사용하는 것 외에도 a~Z까지의 아스키 코드를 사용하여 풀 수도 있다.
| 개념
String.prototype.includes()
- 문자열이 특정 문자열을 포함하고 있는지에 따라 true, false로 반환한다.
String.prototype.indexOf()
- 문자열에서 지정된 요소가 발견되는 첫 번째 인덱스를 반환하고 해당 값이 없으면 -1을 반환한다.
'Algorithm > Programmers' 카테고리의 다른 글
[프로그래머스] 수박수박수박수박수박수? - level 1 (javascript) (0) | 2022.08.01 |
---|---|
[프로그래머스] 문자열을 정수로 바꾸기 - level 1 (javascript) (0) | 2022.08.01 |
[프로그래머스] 약수의 합 - level 1 (javascript) (0) | 2022.07.23 |
[프로그래머스] 이상한 문자 만들기 - level 1 (javascript) (0) | 2022.07.18 |
[프로그래머스] 자릿수 더하기 - level 1 (javascript) (0) | 2022.07.18 |