Lv.1 - 이상한 문자 만들기

송철진·2023년 1월 20일
0

문제 설명

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

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

입출력 예

sreturn
"try hello world""TrY HeLlO WoRlD"

나의 코드

function solution(s) {
    let arr = s.split(" ").map(el => [...el])
    
    for(let k = 0; k<arr.length; k++){
        for(let i = 1; i<=arr[k].length; i++){
          i%2 === 1 ? arr[k][i-1] = arr[k][i-1].toUpperCase()
            : arr[k][i-1] = arr[k][i-1].toLowerCase()
        }
        arr[k] = arr[k].join("")
    }
    
    return arr.join(" ")
}

풀이

  1. s를 공백(" ")을 기준으로 쪼개고
    그 각 요소들을 문자단위로 쪼개서 배열로 묶는다
	let arr = s.split(" ").map(el => [...el])
	
// s = "try hello world"
// arr = [["t","r","y"],
//    	  ["h","e","l","l","o"],
//        ["w","o","r","l","d"]]
  1. 이중 for문을 사용해서 arr의 요소의 요소에 대하여
    (index+1)번째가 홀수 번째면 대문자로,
    짝수 번째면 소문자로 변환하여 재할당한다
	for(let k = 0; k<arr.length; k++){
        for(let i = 1; i<=arr[k].length; i++){
          i%2 === 1 ? arr[k][i-1] = arr[k][i-1].toUpperCase()
            : arr[k][i-1] = arr[k][i-1].toLowerCase()
        }
        arr[k] = arr[k].join("")
    }
profile
검색하고 기록하며 학습하는 백엔드 개발자

0개의 댓글