-
문제 설명
문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.
제한 조건
- 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다.
- 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.
입출력 예
문제 풀이
function solution(s){ const answer = s.split(" ").map((valueArr) => { return valueArr.split("").map((value, index) => { return !(index % 2) ? value.toUpperCase() : value.toLowerCase(); }).join("") }).join(" "); return answer; }
풀이입니다.
문자열 s를 split(" ") 를 통해 띄어쓰기 기준으로 배열로 나누어주고,
map()을 두번 겹쳐서 이용해줍니다.
이유는 나누어진 문자 배열을 또 각각 split("")으로 알파벳 하나하나 나누어서 배열화 시킨후 그 나머지 하나하나를
다시 반복하여 index가 짝수면 toUpperCase()로 대문자로 만들어주고
홀수면 toLowerCase()로 소문자로 만들어주어야 하기 때문입니다.
map 을 통해 변화시켜준 값은 split 해주었던 값이기 때문에 다시 문자열로 바꾸기 위해 각각 join을 통해
문자열로 바꿔준 후 return 합니다.
다른 사람들의 풀이
function toWeirdCase(s){ var str = ''; var arr = s.split(' '); for(var i in arr){ for(var j=0; j<arr[i].length; j++){ var t = arr[i][j]; str += (j % 2 === 0) ? t.toUpperCase() : t.toLowerCase(); } str += ' '; } return str.slice(0, str.length-1); }
'코딩 기록 > 자바스크립트 알고리즘' 카테고리의 다른 글
(자바스크립트 알고리즘) 소수 찾기 - kimyang-sun (0) 2020.10.14 (자바스크립트 알고리즘) 문자열 내 마음대로 정렬하기 - kimyang-sun (0) 2020.10.14 (자바스크립트 알고리즘) 시저 암호 - kimyang-sun (0) 2020.10.12 (자바스크립트 알고리즘) 콜라츠 추측 - kimyang-sun (0) 2020.10.12 (자바스크립트 알고리즘) 하샤드 수 - kimyang-sun (0) 2020.10.12 댓글