반응형
문제
문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.
나의 풀이
function solution(s) {
let answer = [];
const tmp = s.split(' ');
for(let i =0; i < tmp.length; i ++){
let tmp2 = tmp[i].split('')
for(let j =0; j < tmp[i].length; j ++){
j % 2 === 0 ? tmp2[j] = tmp2[j].toUpperCase() : tmp2[j] = tmp2[j].toLowerCase()
}
answer.push(tmp2.join(''))
}
return answer.join(' ');
}
다른이들의 정답
방법1.
function solution(s) {
return s.split(' ').map( a => a.split('').map((b,i)=> i %2 === 0 ? b.toUpperCase() : b.toLowerCase() ).join('')).join(' ')
}
원래 이렇게할려다가 안되서 돌아갔는데, 보니까 join을 제대로 처리를 안해준거였다.
split을 2번했으니 하고 다시 join을 2번 붙였어야됐다.
방법2
function toWeirdCase(s){
return s.toUpperCase().replace(/(\w)(\w)/g, function(a){return a[0].toUpperCase()+a[1].toLowerCase();})
}
요런 정규식 표현도 사용된다.
반응형
'코딩테스트' 카테고리의 다른 글
[프로그래머스] level1. 정수 제곱근 판별 (javascript) (0) | 2021.04.30 |
---|---|
[프로그래머스] level1. [1차] 비밀지도 (javascript) (0) | 2021.04.20 |
[프로그래머스] level1. 문자열 다루기 기본 (javascript) (0) | 2021.04.20 |
[프로그래머스] level1. 문자열을 정수로 바꾸기 (javascript) (0) | 2021.04.20 |
[프로그래머스] level1. 자연수 뒤집어 배열로 만들기 (javascript) (0) | 2021.04.20 |