3일차 → 이상한 문자 만들기(split(), map(), forEach(), splice(), toUpperCase(), toLowerCase(), join())
본문 바로가기
항해 중/2주차 알고리즘(프로그래머스)

3일차 → 이상한 문자 만들기(split(), map(), forEach(), splice(), toUpperCase(), toLowerCase(), join())

by 은돌1113 2021. 11. 10.

문제설명

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

 

제한사항

- 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백 기준)별로 짝/홀수 인덱스를 판단해야 합니다.

- 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리합니다.

 

입출력 예

 

내가 푼 문제 풀이

function solution(s) {

    let answer = '';

    // 1. 단어별로 나눈다.
    let arr = s.split(" ")
    // [ 'try', 'hello', 'world' ]

    let result = arr.map((item, i)=>{
    // return 값이 있어야 하기 때문에 map() 사용

      let arr2 = item.split("")
      // [ 't', 'r', 'y' ]
      // [ 'h', 'e', 'l', 'l', 'o' ]
      // [ 'w', 'o', 'r', 'l', 'd' ]
      
      // 한글자씩 대소문자로 바꾸기 위해서 forEach 사용
      // + 리턴값이 없기 때문에
      arr2.forEach((item2, j)=>{
        // 2. 짝수번째 알파벳은 대문자로
        if(j%2==0){
          arr2.splice(j, 1, item2.toUpperCase())
          // splice() 함수를 사용해서 j번째 인덱스의 글자 1개를
          // 대문자로 변환한 값으로 대체한다.
        // 3. 홀수번째 알파벳은 소문자로
        }else{ // j%2==1
          arr2.splice(j, 1, item2.toLowerCase())
        }
      })

      // 4. 대소문자가 섞인 배열
      return arr2.join("")
      // TrY
      // HeLlO
      // WoRlD
      // 각각의 결과값을 return 해서 result 배열에 담는다.
    })

    // 5. 대문소자가 섞인 문자열
    answer = result.join(" ")
    // result => [ 'TrY', 'HeLlO', 'WoRlD' ]
    // join(" ")를 사용해서 배열의 값들을 하나의 문자열로 변환
    
    return answer
    // TrY HeLlO WoRlD
}

console.log(solution("try hello world"))

 

function solution(s) {

    let answer = '';

    let arr = s.split(" ")
    let result = arr.map((item, i)=>{
      let arr2 = item.split("")
      arr2.forEach((item2, j)=>{
        if(j%2==0){
          arr2.splice(j, 1, item2.toUpperCase())
        }else{
          arr2.splice(j, 1, item2.toLowerCase())
        }
      })
      return arr2.join("")
    })
    answer = result.join(" ")
    
    return answer
}

 

splice()를 써서 배열 요소의 값을 변경하는 방법

https://mine-it-record.tistory.com/352

 

[JavaScript] array.splice()를 사용하여 배열 값 추가/제거/교체/추출 하기

- 자바스크립트 배열 추가, 삭제 하기 (ft. splice)- 스크립트에서 배열에 추가, 삭제하는 경우가 굉장히 많은데 array.splice() 메서드에 대해 알아보고자 한다 신기하게도 이 array.splice() 메서드만으로

mine-it-record.tistory.com

 

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

 

코딩테스트 연습 - 이상한 문자 만들기

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

programmers.co.kr

 

댓글