본문 바로가기
코딩테스트

(javascript) 이상한 문자 만들기

by 어뇨 2024. 1. 23.
  • 문제 설명
    문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.
  • 제한 사항
    문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다.
    첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.

 

function solution(s) {
    var answer = ''
    let str = s.split(" ")

    for(let i = 0 ; i<str.length ; i++){
    let arrStr = str[i]
        for(let j = 0 ; j < arrStr.length ; j++){

        if(j%2 === 1 ){
        answer += arrStr[j].toLowerCase()
    }
    else{
         answer += arrStr[j].toUpperCase()
    }
    }if (i<str.length-1){
        answer += ' '
    }
    }

    return answer;
}

 

우선 제한사항을 보면 문자열 전체의 짝/홀수 인덱스가 아니라 공백을 기준으로 단어별로 짝 홀수 인덱스를 나눴어야 한다.

처음 문제풀땐 이걸 안지켰고 for문을 한번만 써서 푸니까 문제에 실패했었다.

우선 s를 공백으로 하나하나 나눠줬어야 했고, 그리고 첫번째 외부에 있는 for문은 단어 하나하나를, 내부에 있는 for문은 단어의 문자 하나하나를 반복하게끔 코드를 짜면 된다.

그리고 이대로 바로 제출을 할려고했는데 

console.log로 찍어보니까 공백으로 안나눠져 있어서 

마지막에 조건문으로 마지막을 제외하고 단어마다 공백을 넣게끔 했습니다.