본문 바로가기

알고리즘 코딩

단어별로 짝수번째 index의 문자만 대문자로 만들기 알고리즘

이상한 문자 만들기라는 이름으로 문제가 올라와 있다. 자세한 문제내용은 아래 링크를 보면 된다.

https://school.programmers.co.kr/learn/courses/30/lessons/12930?language=javascript 

 

 

 

답안코드는 인터넷을 참고했으나 내가 주석했다. 

function solution(s){
    var answer = '';
    console.log(s.split(' ').map(i => i.split('')
    // 문자열을 공백 기준으로 나눠서 배열에 넣는다. -> 배열의 요소들을 i번째 요소부터 한글자 한글자 갈라서 또다른 배열에 넣는다.
    .map((j, idx) => j = idx % 2 === 0 ? j.toUpperCase():j.toLowerCase())
    // 그 첫번째 또다른 배열에서 idx가 짝수인 요소는 대문자로, 짝수가 아닌 요소는 소문자로 바꾼다. 
    .join('')).join(' ')
    )
    return answer;

}

  

s = "try hello world"

solution(s)

관련해 특별히 기억할 사항은 아래와 같다.

 

1) console을 찍어 가면서 작업하면 map() 안에  split() 과 또다른 map() 메서드가 중첩되는 작업도 가능하다.

 

2) map((j, idx) => ) 메서드에서 두번째 파라미터 idx는 map 메서드가 배열을 돌 때 몇번째 요소인지를 표시하는 key 혹은 index의 개념이다. 

 

3) Array.join() 메서드는 파라미터로 온 문자를 사이에 넣고 배열의 요소들을 연결해서 문자열로 반환한다.