[프로그래머스] 이상한 문자 만들기

쿼카쿼카·2022년 9월 15일
0

알고리즘

목록 보기
16/67

문제

코드

function solution(s) {
    return s.split(' ')
            // 내가 푼 풀이
            .map(val => val.split(''))
            .map(val => val.map((w, i) => !!(i%2) ? w.toLowerCase() : w.toUpperCase()))
            .map(val => val.join('')).join(' ');
            // 간단하게 바뀜
            .map(val => val.split('')
                 		   .map((w, i) => !!(i%2) ? w.toLowerCase() : w.toUpperCase())
                 		   .join('')).join(' ');
  
  	// 정규식 풀이(시간이 오래걸림)
  	return s.toUpperCase()
      		.replace(/(\w)(\w)/g, function(a){return a[0].toUpperCase()+a[1].toLowerCase();})		
}

내가 푼 풀이

  • 뭐에 홀렸는지 모르겠는데 왜 저렇게 map을 많이썻나 모르겠다...다시 간단하게 수정했다.
  • 처음에 문자열에서 replace를 사용하려 했으나 더 복잡해질 것 같아 배열로 처리했다.

정규식 풀이

  • (\w)(\w)는 연속된 문자를 뜻한다.
  • 코드는 간단하지만 시간이 오래걸린다.
profile
쿼카에요

0개의 댓글