map 함수를 이용해서 삼항 연산자로 풀어볼려고 했는데...
시간만 소비하고, 풀지 못 했다...
그래도 map((element)=>
{
~~~~로 문제를 풀어봤다.
}
s.split("")으로 문자열을 단어 모음 배열로 만든 후
단어 모음 배열.map((element)=>
{
if(element.match(' ')) return ' '
//element.match(' ')로 공백은 공백으로 남기고
const Ask = element.charCodeAt()
// 문자 요소를 아스키 코드로 변환하고
if(Ask >= 65 && Ask <= 90) return String.fromCharCode((Ask - 65 + n) % 26 + 65)
// 대문자 영역이면
// Ask - 65로 0 ~ 25(알파벳 개수)로 변경 후
// + n으로 알파벳 순으로 n 칸 오른쪽으로 이동 시켜준다.
// % 26은 A ~ Z 범위를 벗어난 단어를 A ~ Z안에서 순환 시키도록 만들고
// + 65로 다시 대문자 아스키 코드 영역 안으로 되돌려놔 준다.
//소문자도 마찬가지 원리로 변경시켜준다.
}
제출한 코드 :
function solution(s, n)
{
return s.split('')
.map((element)=>
{
if(element.match(' ')) return ' ';
const Ask = element.charCodeAt()
if(Ask >= 65 && Ask <= 90) return String.fromCharCode((Ask - 65 + n) % 26 + 65)
else if(Ask >= 97 && Ask <= 122) return String.fromCharCode((Ask - 97 + n) % 26 + 97)
}).join('')
}
'문제 풀기 > JavaScripts' 카테고리의 다른 글
문제 47. 문자열 내 마음대로 정렬하기(난이도 5)(sort 복습) (0) | 2024.07.29 |
---|---|
문제 46. 숫자 문자열과 영단어(난이도 7)(Dictionary) (0) | 2024.07.29 |
문제 44. (중요)최소직사각형(난이도)(난이도 10)(2중 배열 reduce) (0) | 2024.07.29 |
문제 43. 크기가 작은 부분 문자열 (난이도 7)(substring 복습) (0) | 2024.07.25 |
문제 42. 삼총사 (0) | 2024.07.25 |