[프로그래머스 lev1/JS] 시저암호

woolee의 기록보관소·2022년 11월 8일
0

알고리즘 문제풀이

목록 보기
54/178

문제 출처

프로그래머스 lev1 - 시저암호

문제

나의 풀이

아스키코드
대문자 영문 : 97~122
소문자 영문 : 65~90

function solution(s, n) {
  let upper = [];
  for (let i=97; i<=122; i++) {
    upper.push(String.fromCharCode(i));
  }
  let lower = [];
  for (let i=65; i<=90; i++) {
    lower.push(String.fromCharCode(i)); 
  }

  s=s.split('');
  for (let i=0; i<s.length; i++) {
    if (upper.includes(s[i])) {
      
      s[i] = upper[(upper.indexOf(s[i])+n)%upper.length];
    }

    if (lower.includes(s[i])) {
      s[i] = lower[(lower.indexOf(s[i])+n)%lower.length];
    }
  }
  return s.join('');
}

console.log(solution("a B z", 4));

다른 풀이

삼항연산자

function solution(s, n) {
  var result = "";
  for (var i=0; i<s.length;i++) {        
    if ( s[i] == ' ' )
      result += ' '
    else 
      result += String.fromCharCode( (s.charCodeAt(i)>90)?
      (s.charCodeAt(i)+n-97)%26+97 : (s.charCodeAt(i)+n-65)%26+65 )     
    }
  return result;
}
profile
https://medium.com/@wooleejaan

0개의 댓글