본문 바로가기

코딩테스트

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

문제설명 : 

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

 

 

내가 작성한 코드 : 

function solution(s) {
    var answer = '';
    let tmp = s.split(' ')
    let changedArr = []
    
    for(const x of tmp){
        let str = ""
        const arr = [...x]
        arr.forEach((v,i) => {
            if(i%2 == 0) str += v.toUpperCase()
            else str += v.toLowerCase()

        })
        changedArr.push(str)
    }

    answer = changedArr.join(' ')
    return answer 
}

 

 

내가 겪었던 문제 : 

주어진 모든 문자가 소문자라고 전제하고 문제를 풀었다. 

=> 그래서 나는 짝수일 때만 toUpperCase() 메서드를 실행시켜주고, 홀수일 때는 그냥 문자를 넣어주었다. 

=> 이렇게 문제를 풀 경우 주어진 문자가 대문자이면, 홀수인데도 대문자로 표시된다. 

=> 때문에 홀수인 경우에는 toLowerCase() 메서드를 실행시켜주었다. 

=> 테스트 케이스를 꼼꼼히 생각해보자 🥲