본문 바로가기
코테연습

129. 이상한 문자 만들기 Javascript

by hxunz 2022. 9. 12.

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

1. 문제에 대한 이해

  • 우리가 풀어야 할 문제는 무엇인가?
     - 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하라
  • 주어진 자료는 무엇인가?
     - 문자열 s
  • 조건은 무엇인가?
     - 한 개 이상의 단어로 구성
     - 각 단어는 하나 이상의 공백문자로 구분
     -
    문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다.
     - 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.

2. 계획

  1. 주어진 문자열을 단어로 쪼개서 배열로 만든다.
  2. 이를 순회하면서 짝수번째 알파벳은 대문자로 홀수번째 알파벳은 소문자로 바꾼다.
  3. 공백 기준으로 다시 문자열로 합친다.

3. 실행

  • 풀이 계획을 실행하고, 각 단계가 올바른지 점검하라.
function solution(s) {
  return s.split(' ')
    .map((it) => it.split(''))
    .map((it) => it.map((word, index) => {
      if (index % 2 === 0) {
        return word.toUpperCase()
      } else {
        return word.toLowerCase()
      }
    }))
    .map((el) => el.join(''))
    .join(' ')
}

test('newString', () => {
  expect(solution("try hello world")).toEqual("TrY HeLlO WoRlD");
  expect(solution("abc abcd abcde")).toEqual("AbC AbCd AbCdE");
});

 

댓글