프로그래머스[Level 1] 이상한 문자 만들기
문제
문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.
제한 사항
- 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다.
- 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.
입출력 예
풀이
function solution(s) {
let arr = s.split(" ");
let lengths = arr.map((e) => e.length);
let answer = [];
arr.forEach((e, i) => {
let string = "";
for (let x = 1; x <= lengths[i]; x++) {
if (x % 2) {
string += e[x - 1].toUpperCase();
} else {
string += e[x - 1].toLowerCase();
}
}
answer.push(string);
});
return answer.join(" ");
}
띄어쓰기 기준으로 나눠 배열을 만들고 각 요소의 길이를 가지고 있는 다른 배열을 만들었다. forEach안에서 길이를 가진 배열을 이용하여 풀어냈다.
다른 풀이
function solution(s) {
let arr = s.split(" ");
let answer = [];
for (let item of arr) {
answer.push(
item
.split("")
.map((e, i) => ((i + 1) % 2 ? e.toUpperCase() : e.toLowerCase()))
.join("")
);
}
return answer.join(" ");
}
좀 더 줄여봤다. 아이디어는 같으나 접근 방식이 다르다.
Author And Source
이 문제에 관하여(프로그래머스[Level 1] 이상한 문자 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@bkdragon0228/프로그래머스Level-1-이상한-문자-만들기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)