-
[JS] 시저 암호이노베이션 캠프/3주차_알고리즘 2023. 6. 19. 19:52
문제
https://school.programmers.co.kr/learn/courses/30/lessons/12926
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 풀이
function solution(s, n) { let result = ""; const uppers = Array.from({ length: 26 }, (v, i) => String.fromCharCode(i + 65)); const lowers = Array.from({ length: 26 }, (v, i) => String.fromCharCode(i + 97)); for(let i=0; i<s.length; i++) { let element = s[i]; if(element === " ") { result += " " continue; } let arr = element.toUpperCase() === element ? uppers : lowers; let index = arr.indexOf(element); index += n; if(index >= arr.length) { index = index - arr.length; } result += arr[index]; } return result; }
해설
- 배열 내 from과 아스키코드로 변경해주는 fromCharCode() 사용하여 대문자, 소문자 저장
- for문 사용하여 주어진 문자열에 접근
- 공백인 경우에는 공백으로 들어갈 수 있도록 함.
- 대문자인지, 소문자인지 구분한 후 필요한 배열의 값을 가져옴 (변수 명: arr)
- indexOf() 사용하여 내가 원하는 문자의 인덱스 값 저장
- 3번에서 구한 인덱스 값에 n만큼 증가, 해당 인덱스에 존재하는 값 가져와서 result에 저장
- 주어진 인덱스의 길이가 배열의 길이보다 길어진 경우 앞으로 돌아와서 0부터 다시 카운트 될 수 있도록 index 값 변경
728x90'이노베이션 캠프 > 3주차_알고리즘' 카테고리의 다른 글
[JS] 소수 만들기 (0) 2023.06.19 [JS] 신규 아이디 추천 (0) 2023.06.19 [JS] 숫자 문자열과 영단어 (0) 2023.06.19 [JS] 문자열 내림차순으로 배치하기 (0) 2023.06.19 [JS] 문자열 내 마음대로 (0) 2023.06.19