Coding test

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

Jiwoo 2022. 4. 14. 17:35

문제

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

 

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

나의 풀이

function solution(s) {
    // s = 한 개 이상의 단어 str
    // 각 단어 = 하나 이상의 공백문자
    // 함수 (단어의 짝수번째 -> 대문자 / 홀수번째 -> 소문자)

    // s를 단어별로 나눈 arr 생성
    //  1. arr.split(" ") => [Hello, world]
    let arr = s.split(" ");

    // arr[i]를 또 배열로 => 짝수인덱스 -> 대문자 / 홀수인덱스 -> 소문자 => str
    //  1. arr[i].split("").map((e, i => i%2 === 0 ? ~)).join
    //  arr[i].split("").map((e,i) => i%2 ===0? e.toUpperCase() : e).join("")

    // arr[i]를 공백 있게 str으로 합침
    //  2. for문으로 돌리지 말고 합치기 (map시도)
    return arr.map(e => e.split("").map((e,i) => i%2 ===0? e.toUpperCase() : e.toLowerCase()).join("")).join(" ");

}

 
실행속도도 빨라서 개인적으로 만족스러운 답안
 

  • 정확도 테스트 결과