이상한 문자 만들기

yejin·2022년 1월 19일
0

javascript 알고리즘

목록 보기
17/20

https://programmers.co.kr/learn/courses/30/lessons/12930

문제 설명

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

제한 사항

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

입출력 예

sreturn
"try hello world""TrY HeLlO WoRlD"

입출력 예 설명

"try hello world"는 세 단어 "try", "hello", "world"로 구성되어 있습니다. 각 단어의 짝수번째 문자를 대문자로, 홀수번째 문자를 소문자로 바꾸면 "TrY", "HeLlO", "WoRlD"입니다. 따라서 "TrY HeLlO WoRlD" 를 리턴합니다.

내 풀이

function solution(s) {
    var answer = '';
    //split로 단어별 문자열 만들기
    var arr = s.split(" ");
    
    //홀수 인덱스면 소문자 출력 짝수 인덱스면 대문자 출력
    for(let i=0; i<arr.length; i++){
        for(let j=0; j<arr[i].length; j++){
            if(j%2!==0) answer += arr[i][j].toLowerCase();
            else answer += arr[i][j].toUpperCase();
        }
    }
    return answer;
}

실행한 결괏값 "TrYHeLlOWoRlD"이(가) 기댓값 "TrY HeLlO WoRlD"와(과) 다릅니다.
이런 오류가 뜨는데 어떻게 띄어쓰기를 넣어줄지 감이 안잡혔다.

다른 풀이


function solution(s) { 
    var answer = ''; 
    var temp = s.split(" "); // ['try', 'hello', 'world'] 
    for (var i in temp) { // try 
        for (var j in temp[i]) { // t 
            if (j%2 !== 0) { 
                answer += temp[i][j].toLowerCase(); 
            } else { 
                answer += temp[i][j].toUpperCase(); 
            } 
        } 
      //단어 하나 끝날때마다 띄어쓰기 넣어주기
        answer += " "; 
    } 
  //맨 마지막 띄어쓰기 제거
    return answer.slice(0, -1); 
}
profile
♪(๑ᴖ◡ᴖ๑)♪ 기회는 도전에서부터 시작되는 것

0개의 댓글