이상한 문자 만들기

hyuri·2023년 9월 20일
0

코딩테스트 연습

목록 보기
3/70

내가 작성한 답

function solution(s) {
    let textChange = (text,idx) => idx % 2 === 0 ? text.toUpperCase() : text.toLowerCase();

    let answer = s.split(' ').map((a,b) => a.split('').map((text, idx) => textChange(text,idx)).join('')).join(' ');

    console.log(answer);


    return answer;
}

깔끔한 답

function toWeirdCase(s){
  return s.toUpperCase().replace(/(\w)(\w)/g, function(a){return a[0].toUpperCase()+a[1].toLowerCase();})

}

해석

나는 자르고 index의 짝홀을 따지고, 붙이고, 공백으로 또 붙였다.
다른 사람은 정규표현식을 사용해서 풀었다.

내가 작성한 답은 문자열의 길이가 길어질수록 실행 시간이 늘어나지만,
정규표현식을 사용한 식은 문자열을 한 번에 처리하기 때문에 실행 시간이 비교적 일정하다.

정리해야될 목록

정규표현식
replace

profile
개발자가 되고 싶은 지망생

0개의 댓글