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

2022. 8. 11. 00:55Algorithm

문제 설명

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

 

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

 

입출력 예

s return
"try hello world" "TrY HeLlO WoRlD"

 

입출력 예 설명

"try hello world"는 세 단어 "try", "hello", "world"로 구성되어 있습니다. 각 단어의 짝수번째 문자를 대문자로, 홀수번째 문자를 소문자로 바꾸면 "TrY", "HeLlO", "WoRlD"입니다. 따라서 "TrY HeLlO WoRlD" 를 리턴합니다.


나의 풀이

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

console.log(solution("try hello world")); // TrY HeLlO WoRlD
  1. 매개변수로 받은 문자열 s를 단어 단위 배열로 만든다.
  2. 배열 함수 map()을 사용해서 단어 요소를 글자 단위 배열로 한번더 쪼갠다.
  3. 안에서 또 map()을 사용해 글자 요소의 index가 짝수면 대문자로 홀수면 소문자로 바꾼다.
  4. join() 메서드로 글자를 다시 단어 문자열로 변환하고, 한번더 join()으로 각 단어를 하나의 문자열로 변환한다.

문제 링크

https://programmers.co.kr/learn/courses/30/lessons/12930

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

반응형