이상한 문자 만들기 (Level 2)

문제

toWeirdCase함수는 문자열 s를 매개변수로 입력받습니다.

문자열 s에 각 단어의 짝수번째 인덱스 문자는 대문자로, 홀수번째 인덱스 문자는 소문자로 바꾼 문자열을 리턴하도록 함수를 완성하세요.

예를 들어 s가 “try hello world”라면 첫 번째 단어는 “TrY”, 두 번째 단어는 “HeLlO”, 세 번째 단어는 “WoRlD”로 바꿔 “TrY HeLlO WoRlD”를 리턴하면 됩니다.

주의 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단합니다.

풀이

function toWeirdCase(s){
  let check = s.split(" "), ans = [],val = null;
  for (let elem of check) {
    val = elem.split("")
    for (let i = 0; i < val.length; i++) {
      if( i % 2 == 0 ) {
        val[i] = val[i].toUpperCase()
      } else {
        val[i] = val[i].toLowerCase()
      }
    }
    ans.push(val.join(''))
  }
  return ans.join(" ")
}

// 아래는 테스트로 출력해 보기 위한 코드입니다.
console.log("결과 : " + toWeirdCase("try hello world"));

공백을 기준으로 배열로 자르고, 다시 문자열 하나하나 잘라서 인덱스로 홀짝 비교 후 변경 후 조인

다른 사람의 풀이

function toWeirdCase(s){
  //함수를 완성해주세요
  return s.toUpperCase().replace(/(\w)(\w)/g, function(a){return a[0].toUpperCase()+a[1].toLowerCase();})
}

정규식 한줄로 끝..

+ Recent posts