카테고리 없음

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

nh_3521099031483 2024. 3. 12. 18:50

[level 1] 이상한 문자 만들기 - 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 = '';
    const ret = s.split(" ") // 공백을 기준으로 문자열을 나눔
    let str = '' // 반복문 돌릴 문자열
    for(i=0; i<ret.length; i++){ // 예시 기준으로 3단어니까 3번 돌릴꺼임
        str = ret[i] // 첫 번째 try, 두 번째 hello, 세 번째, world
        for(j=0; j<str.length; j++){ // 단어의 알파벳 갯수만큼 돌릴꺼임
            if(j%2===0){ // 첫 번째거나 짝수면 대문자
                answer += str[j].toUpperCase()
            }else{ // 아니면 소문자
                answer += str[j].toLowerCase()
            }
        }
        answer += ' '
    }
    answer = answer.substr(0,answer.length-1);
    return answer;
}

코드가 길다… 반복문 두 번 쓰는 게 아직도 어려워서 겨우 해결했다. 머릿속에는 로직이 있는데 손이 안따라주고 구현할 만한 지식, 역량이 부족하다.

자바스크립트로 풀려니까 let, const, var 등등 선언시에 뭘 써야되는지 아직 헷갈림.

파이썬은 그냥 하면 되는데…

if문이나 for문 쓸때도 {}쓰는거 불편했지만 이젠 편해짐 뭔가 보기 편함..