코딩 테스트/test_javaScript

[코딩테스트/javaScript]이상한 문자 만들기

ijooha 2025. 1. 3. 19:25

function solution(s) {
    let answer = [];
    
    for (let i=0; i<s.length; i++) {
        if (i%2 == 0) {
            answer.push(s[i].toUpperCase())
        } else {
            answer.push(s[i].toLowerCase());
        }
    }
    return answer.join('');
}

오류가 떠서 콘솔창으로 확인해봤더니, 빈공간인 경우 .toUpperCase()가 적용이 안되고 에러가 뜬다..

반복문으로 어떻게든 해보려고 몇시간을 끙끙대다 결국 포기... 그리고 알게된 사실..

.split('')은 글자별로, .split(' ')은 단어별로 나눠준다. (따옴표 안 띄어쓰기)

 

그리고 .map(요소) / .map(요소,인덱스)로 변수를 정해 함수를 만들면 됨

.map은 배열 안 요소를 하나씩 가져와 순회하며 함수를 적용하는 메소드다.

 

다시 쓰면서 분명 맞는 거 같은데 자꾸 틀리길래... 결국 챗지피티한테 물어봤는데

나는 삼항 연산자는 return을 내포하고있다고 착각했다. 그래서 return을 빼먹음..

 

사소한 실수는 두번 반복하지 않기 **

function solution(s) {
    let arr = s.split(' ');
    
    let answer = arr.map(word => {
        return [...word].map((char,index) => {
            return (index % 2 == 0) ? char.toUpperCase() : char.toLowerCase()
        }).join('');
    })
    return answer.join(' ');
}