728x90
👌 대문자와 소문자가 있으므로, 변수로 값을 할당해주면
var upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var lower = "abcdefghijklmnopqrstuvwxyz";
👌 s의 i번째 자리수를 구해주어야 하므로
for(var i =0; i <s.length; i++)
👌 s의 i번째 글자를 표현하기 위해 변수를 지정해주면
var text = s[i]
👌 공백은 계속 공백이라 했으므로
if(text == ' ') {
answer += ' '
continue
👌 s가 a B z 라고 하고 s[3] 이 B라면, 즉 s[i] 자리에 대문자가 있다면 그대로 대문자로 반환해주어야 하므로
upper.includes(text) ? upper : lower // 이 값을 변수로 할당해준다.
var textArr = upper.includes(text) ? upper : lower
👌 s가 a B z 일때 s[0] 은 a이고 a는 textArr의 0번째, 주어진 n만큼 위치를 변경해야 하므로
var index = textArr.indexOf(text)+n;
👌 n을 더한 index가 알파벳 26를 넘어가게 되면, 다시 a로 돌아오므로 26을 넘어가거나 같을 경우(자리 위치이니까), textArr의 길이를 빼주면 된다.
어렵다..
✅ 최종 코드
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; } |
728x90
'알고리즘 스터디 > [프로그래머스] 월간 코드 챌린지 시즌1' 카테고리의 다른 글
[알고리즘] 숫자 문자열과 영단어 문제풀이(자바스크립트 javascript) (0) | 2022.07.21 |
---|---|
[알고리즘] 소수 만들기 문제풀이(자바스크립트 javascript) (0) | 2022.07.21 |
[알고리즘] 문자열 내림차순으로 배치하기 문제풀이(자바스크립트 javascript) (0) | 2022.07.21 |
[알고리즘] 문자열 내 마음대로 정리하기 문제풀이(자바스크립트 javascript) (0) | 2022.07.21 |
[알고리즘] 모의고사 문제풀이(자바스크립트 javascript) (0) | 2022.07.20 |