출처/프로그래머스
● 문제 설명
문자열 s는 한 개 이상의 단어로 구성되어 있습니다.
각 단어는 하나 이상의 공백 문자로 구분되어 있습니다.
각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.
● 제한 사항
- 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다.
- 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.
● 입출력 예
s | return |
"try hello world" | "TrY HeLlO WoRlD" |
● 입출력 예 설명
"try hello world"는 세 단어 "try", "hello", "world"로 구성되어 있습니다.
각 단어의 짝수번째 문자를 대문자로, 홀수번째 문자를 소문자로 바꾸면 "TrY", "HeLlO", "WoRlD"입니다.
따라서 "TrY HeLlO WoRlD" 를 리턴합니다.
나의 풀이
function solution(s) {
return s.split(" ").map((arr) =>
arr.split("").map((res, idx) =>
idx%2==0 ? res.toUpperCase() : res).join("")).join(" ");
}
후기
처음에 map() 대신 forEach() 를 사용해서 꽤 애먹은 문제였다.
대신, map() 과 forEach() 의 차이점에 대해 알아보는 시간을 가질 수 있었다.
간단하게 정리하면,
map() 은 주어진 배열 요소에 대해서 콜백 함수를 호출한 결과를 모아 새로운 배열을 반환하지만,
forEach() 는 문 밖으로 return값을 내보내지 못한다.
return값이 없으니 당연히 join()을 할 수가 없었던 것이었다.
'Programmers > Level 1' 카테고리의 다른 글
[프로그래머스 / JavaScript] - 수박수박수박수박수박수? (0) | 2022.04.29 |
---|---|
[프로그래머스 / JavaScript] - 정수 제곱근 판별 (0) | 2022.04.29 |
[프로그래머스 / JavaScript] - 자릿수 더하기 (0) | 2022.04.28 |
[프로그래머스 / JavaScript] - 제일 작은 수 제거하기 (1) | 2022.04.26 |
[프로그래머스 / JavaScript] - 정수 내림차순으로 배치하기 (0) | 2022.04.25 |