본문 바로가기

Coding Test/Programmers

[프로그래머스/JavaScript] 코딩 테스트 풀이 (문제 117 - 이상한 문자 만들기)

728x90
# 문제

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

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



# 답안

// 1. 입력: 문자열 s
// 2. 출력: 짝수번째 알파벳은 대문자, 홀수번째 알파벳은 소문자로 바꾼 문자열

// 문자열을 공백 기준으로 나눠서 배열로 만들기 s.split(' ')

// answer = [];

// 반복문 돌릴건데, (let i=0; i<word.length; i++)
// if (i % 2 === 0)면, word[i].toUpperCase() 아니면, toLowerCase()
// 변환하면 answer에 단어를 push

// 공백으로 연결하기 join(" ")


function solution(s) {
  let words = s.split(" "); // 문자열을 공백 기준으로 나눠서 배열로 만들기
  let answer = []; // 답안 담을 빈배열

  for (let word of words) {
    // 단어 단위로 하나씩 반복문 돌리기
    let modifiedWord = ""; // 변형된 단어를 담을 빈문자열 만들기
    for (let i = 0; i < word.length; i++) {
      if (i % 2 === 0) {
        modifiedWord += word[i].toUpperCase();
      } else {
        modifiedWord += word[i].toLowerCase();
      }
    }
    answer.push(modifiedWord); // 변환된 단어를 빈배열에 담기
  }
  return answer.join(" ");
}
728x90