Algorithm - 이상한 문자 만들기

Cho2andy·2022년 5월 18일
0

알고리즘

목록 보기
21/28
post-thumbnail

이상한 문자 만들기

<프로그래머스 문제를 기반으로 합니다>

문제 설명

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

제한 사항

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

단어별로 인덱스를 파악하라는 것은 배열화 하여 이중배열 처리를 해라라는 뜻으로 해석했다 🙂

입출력 예

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

단어 하나하나를 배열로 보면 위 제한사항이 이해된다 😀

어떻게 풀까?

  1. 먼저 입력된 문자열을 split() 함수를 통해 쪼개어 인덱스 값들이 단어인 배열을 만든다.
  2. 그 후 map() 함수를 이용하여 각 단어들을 다시 split()함수를 사용하여 쪼개어 이중 배열을 만든다.
  3. 각 배열의 인덱스 값들을 % 연산자를 통해 짝/홀수를 판별하고
  4. 조건문을 통해 짝수는 toUpperCase() / 홀수는 toLowerCase()를 적용한 후
  5. join() 함수를 통해 각 내부 배열들을 합쳐 String 값으로 리턴한 후
  6. 다시 join 함수를 통해 바깥 큰 배열을 합쳐 String 값으로 반환하면?
  7. 답이 뙇👍

<풀이 완성 코드>

function solution(s) {
    return s
        .split(" ")
        .map(x => x.split('')
            .map((e, index) => index % 2 === 0 ? e.toUpperCase() : e.toLowerCase())
                .join(''))
        .join(' ')
}
profile
먹고 배우는 것엔 아끼지 말자구 ( ̄︶ ̄)↗

0개의 댓글