[프로그래머스] Lv.1 시저 암호
문제 설명
어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다.
예를 들어 "AB"는 1만큼 밀면 "BC"가 되고, 3만큼 밀면 "DE"가 됩니다. "z"는 1만큼 밀면 "a"가 됩니다.
문자열 s와 거리 n을 입력받아 s를 n만큼 민 암호문을 만드는 함수, solution을 완성해 보세요.
제한 조건
공백은 아무리 밀어도 공백입니다.
s는 알파벳 소문자, 대문자, 공백으로만 이루어져 있습니다.
s의 길이는 8000이하입니다.
n은 1 이상, 25이하인 자연수입니다.
입출력 예

function solution(s, n) {
let upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
let lower = "abcdefghijklmnopqrstuvwxyz";
let answer = "";
for (let i = 0; i < s.length; i++) {
let str = s[i];
// 문자가 아닌 공백일 경우 덧셈 할당
if (str === " ") {
answer += " ";
continue;
}
// 대문자 문자열에 해당하는 문자가 있을 시 text에 upper, 없다면 lower 할당
let text = upper.includes(str) ? upper : lower;
// 할당한 문자열에 매개변수 s에 해당하는 인덱스와 n 더하기
let index = text.indexOf(str) + n;
// 만약 더한 인덱스가 할당한 문자열의 길이보다 길거나 같을 경우 인덱스 - 문자열 길이 빼기
if (index >= text.length) {
index -= text.length;
}
// 계산한 인덱스에 해당하는 문자 덧셈 할당
answer += text[index];
}
return answer;
}
🔖 continue
continue 문은 현재 또는 레이블이 지정된 루프의 현재 반복에서 명령문의 실행을 종료하고 반복문의 처음으로 돌아가여 루프문의 다음 코드를 실행한다.
🔖 includes
includes 메서드는 배열 내에 특정 요소가 포함되어 있는지 확인하여 true or false를 반환한다. 첫 번째 인수로 검색할 대상을 지정한다.
🔖 indexOf
indexOf 메서드는 원본 배열에서 인수로 전달된 요소를 검색하여 인덱스를 반환한다. 배열에 특정 요소가 존재하는지 확인할 때 유용하다.
원본 배열에 인수로 전달한 요소와 중복되는 요소가 여러 개 있다면 첫 번째로 검색된 요소의 인덱스를 반환한다.
원본 배열에 인수로 전달한 요소가 존재하지 않으면 -1을 반환한다.
'Daily coding' 카테고리의 다른 글
[프로그래머스] Lv1. 문자열 다루기 기본 (0) | 2022.07.19 |
---|---|
[프로그래머스] Lv.1 K번째수 (0) | 2022.07.19 |
[프로그래머스] Lv.1 2016년 (0) | 2022.07.11 |
[프로그래머스] Lv.1 두 정수 사이의 합 (0) | 2022.06.28 |
[프로그래머스] Lv.1 나누어 떨어지는 숫자배열 (0) | 2022.06.27 |