프로그래머스 1단계
시저 암호 문제를 풀어보자 ✂️
시저 암호!
split과 map을 사용하여 답을 도출해낸 방법입니다.
1. split 으로 문자열을 나누었을때 띄어쓰기가 포함되어 있으므로 띄어쓰기가 있으면 그대로 return 합니다
2. 문자라면 두번째 줄로 넘어가며 해당 문자를 대문자로 바꿔서 문자를 아스키코드로 변환하고 n을 더했을때 90(아스키코드에서 Z에 해당) 초과라면 값을 나타낼 수 없고
3. 만약 90을 초과한다면 해당 값에서 26(알파벳 갯수)을 빼주고 그게 아니라면 n을 더한 그 값만 return 해주면 됩니다.
function solution(s, n) {
return s.split('').map(v => {
if(v === ' ') return v;
return v.toUpperCase().charCodeAt()+n > 90 ? String.fromCharCode(v.charCodeAt()+n-26) : String.fromCharCode(v.charCodeAt()+n)
}).join('');
}
시저 암호 : 다른 사람 풀이
if를 화살표 함수로 표햔해 각각 최대 공약수/공배수를 구하는 방법입니다.
1. alphabetArray에 모든 배열의 값을 저장해놓고
2. indexOf 로 배열에서 인덱스를 알아낸 후
3. 인덱스에 n을 더한다.
4. 최종 result 반환
function caesar(s, n) {
var result = "";
// 함수를 완성하세요.
var alphabetArray = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z",
"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z",
"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z",
"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z",
"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z",
"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z",
"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z",
"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z",
" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," ",
" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," ",
" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," ",
" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," ",];
var splitArray = s.split("");
for(var i = 0 ; i < splitArray.length ; i++)
{
var mn = alphabetArray.indexOf(splitArray[i]);
splitArray[i] = alphabetArray[mn+n];
result = result + "" + splitArray[i];
}
return result;
}
'프로그래머스' 카테고리의 다른 글
프로그래머스 1단계 : 최소직사각형! (1) | 2022.12.05 |
---|---|
프로그래머스 1단계 : 문자열 내 마음대로 정렬하기! (1) | 2022.12.05 |
프로그래머스 1단계 : 이상한 문자 만들기 (1) | 2022.11.29 |
프로그래머스 1단계 : 같은 숫자는 싫어! (1) | 2022.11.27 |
프로그래머스 1단계 : 최대공약수와 최소공배수 (1) | 2022.11.27 |
댓글