😈 이상한 문자 만들기
📗 문제 설명
문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.
👀 제한사항
- 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다.
- 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.
📃 입출력 예
s | return |
---|---|
"try hello world" | "TrY HeLlO WoRlD" |
💬입출력 예 설명
입출력 예 설명 #1
- "try hello world"는 세 단어 "try", "hello", "world"로 구성되어 있습니다. 각 단어의 짝수번째 문자를 대문자로, 홀수번째 문자를 소문자로 바꾸면 "TrY", "HeLlO", "WoRlD"입니다. 따라서 "TrY HeLlO WoRlD" 를 리턴합니다.
💎나의 풀이
제일 중요한건 문장 전체의 인덱스가 아닌 단어별의 인덱스로 짝/홀수를 판단하는 것이다.
우선 단어별로 쪼개주자.
const solution = s => s.split(' ').map(v=>v))
// [object Array] (3)
["try","hello","world"]
쪼개진 단어들을 풀어내기 위해 map 안에 map을 써서 각 단어들의 인덱스로 짝/홀수를 판단하자.
const solution = s => s.split(' ').map(v=>[...v].map((x,i) => i%2===0))
[
[true,false,true],// try
[true,false,true,false,true],// hello
[true,false,true,false,true]] // world
문제의 요구 사항대로 대소문자 구분 해주면 된다.
const solution = s => s.split(' ').map(v=>[...v].map((x,i) => i%2===0 ? x.toUpperCase() : x.toLowerCase()))
[
["T","r","Y"],
["H","e","L","l","O"],
["W","o","R","l","D"]]
join 시켜주자
const solution = s => s.split(' ').map(v=>[...v].map((x,i) => i%2===0 ? x.toUpperCase() : x.toLowerCase()).join('')).join(' ')
"TrY HeLlO WoRlD"
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 😈] JavaScript 피보나치 수 (0) | 2023.11.24 |
---|---|
[프로그래머스 😈] JavaScript 약수의 개수와 덧셈 (1) | 2023.11.22 |
[프로그래머스 😈] JavaScript K번째수 (0) | 2023.11.21 |
[프로그래머스 😈] JavaScript 수박수박수박수박수박수? (1) | 2023.10.30 |
[프로그래머스 😈] JavaScript 내적 (1) | 2023.10.30 |