-
[자바스크립트] 프로그래머스 Lv.1 시저 암호[TIL] 카테고리/알고리즘 문제풀기 2022. 5. 18. 09:53
let answer = '' let lowerCases = 'abcdefghijklmnopqrstuvwxyz' // 소문자 배열 생성 let upperCases = lowerCases.toUpperCase() // 대문자 배열 생성 s = s.split('') // 우선 주어진 문자열을 쪼개고 for (i=0; i<s.length; i++) { //문자열 길이만큼 if (s[i] === ' ') { continue } // 공백은 패스한다 else if (s[i] === s[i].toUpperCase()) { //대문자일경우, 대문자 배열에서 s[i]의 인덱스 + 4 번째 알파벳을 찾아 돌려준다 s[i] = upperCases[(upperCases.indexOf(s[i])+n)%26] } else { // 소문자일경우, 소문자 배열에서 같은 작업 s[i] = lowerCases[(lowerCases.indexOf(s[i])+n)%26] } } s = s.join('') // 다시 문자열로 합친다.
주어진 문자열을 시저 암호로 바꾸는 문제.
인덱스 번호를 밀기만 하면 되어서 어렵진 않았는데
소문자랑 대문자를 한번에 처리할 방법은 없었을까 고민하게된다.
https://programmers.co.kr/learn/courses/30/lessons/12926
코딩테스트 연습 - 시저 암호
어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 "AB"는 1만큼 밀면 "BC"가 되고, 3만큼 밀면 "DE"가 됩니다. "z"는 1만큼 밀
programmers.co.kr
'[TIL] 카테고리 > 알고리즘 문제풀기' 카테고리의 다른 글
[자바스크립트] 프로그래머스 Lv.1 약수의 개수와 덧셈 (0) 2022.05.21 [자바스크립트] 프로그래머스 Lv.1 신규 아이디 추천 (0) 2022.05.18 [자바스크립트] 프로그래머스 Lv.1 숫자 문자열과 영단어 (0) 2022.05.18 [자바스크립트] 프로그래머스 Lv.1 소수 만들기 (0) 2022.05.18 [자바스크립트] 프로그래머스 Lv.1 문자열 내림차순으로 배치하기 (0) 2022.05.18