[알고리즘] 이상한 문자 만들기

Cottonmycotton·2021년 9월 28일
0

Algorithm

목록 보기
14/44
post-custom-banner

문제 설명

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

제한사항

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

입출력 예시

🖊 풀이

  • 주어진 문자열을 split메서드를 통해 배열로 변환시킨다
  • map은 자신이 호출한 배열의 모든 요소를 순회하면서 인수로 전달받은 콜백 함수를 반복 호출한다. 그리고 콜백 함수의 반환값들로 구성된 '새로운 배열'을 반환한다.
  • 중요한 것은 문자 전체의 인덱스를 보는 것이 아니라 단어를 기준으로 봐야 한다(여기서 많이 헤맴...)
  • 마지막 join메서드를 사용하여 만들어 반환하기
  • joinsplit는 구분자 설정에 따라 결과값이 확실히 다르게 나온다.
    (배열 고차 함수는 잘만쓰면 진짜 편리하다... 문자열과 배열 메서드 자주 볼것)

💡 코드

function solution(s) {
    const makingArray = s.split(" ");
    const results =  makingArray.map((elements) => {
        let answer = '';
        for (let i = 0; i < elements.length; i++) {
            if (i % 2 === 0) {
                answer += elements[i].toUpperCase();
            } else {
                answer += elements[i].toLowerCase();
            }
        }
        return answer;
    });
  
    return results.join(" "); 
}

문제 출처: 프로그래머스

profile
투명인간
post-custom-banner

0개의 댓글