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

🌊·2022년 1월 18일
0

Algorithm

목록 보기
14/25
post-thumbnail

문제 설명

문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.

제한 사항

  • 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다.
  • 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.

입출력 예

풀이

const s = "try hello world";

function solution(s) {
  const str = s.split(" ");
  var answer = [];

  let tmp = "";
  str.forEach((element) => {
    for (let i = 0; i < element.length; i++) {
      tmp += i % 2 == 0 ? element[i].toUpperCase() : element[i].toLowerCase();
    }

    answer.push(tmp);
    tmp = "";
  });

  return answer.join(" ");
}

console.log(solution(s));

map()을 이용해서 배열 순회 후 새로운 배열로 return하고 싶었다..
뜻처럼 되지 않아서 forEach()for()를 같이 사용했다.
초기에 toLowerCase() 함수를 사용하지 않아서 오류가 발생했다.
오류를 생각보다 빨리 찾아내서 다행이다.

코드 리뷰

프로그래머스

function solution(s) {
  return s
    .split(" ")
    .map((x) =>
       x.split("")
        .map((y, index) => (index % 2 == 0 ? y.toUpperCase() : y.toLowerCase()))
        .join("")
    )
    .join(" ");
}

요즘 새로운 함수들을 많이 배워가고 있다.
내가 더 손에 익고 선호하는 함수를 쓰는게 아니라 용도에 맞게 함수를 잘 사용하고 싶다👍

0개의 댓글