8월 1일 알고리즘 문제 풀이
프로그래머스 lv1 문제 풀이 : 이상한 문자 만들기
문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.
s | return |
---|---|
"try hello world" | "TrY HeLlO WoRlD" |
"try hello world"는 세 단어 "try", "hello", "world"로 구성되어 있습니다. 각 단어의 짝수번째 문자를 대문자로, 홀수번째 문자를 소문자로 바꾸면 "TrY", "HeLlO", "WoRlD"입니다. 따라서 "TrY HeLlO WoRlD" 를 리턴합니다.
function solution(s) {
// 문자열을 배열로 하나씩 잘라줌
let arr2 = s.split(" ");
let arr3 = [];
let newstr = "";
for (let i = 0; i < arr2.length; i++) {
// 공백이 아니면 푸시
if (arr2[i].length === 0) {
arr3.push(arr2[i]);
} else {
for (let j = 0; j < arr2[i].length; j++) {
if (j % 2 === 0) {
// 대문자로 변환해서 더해줌
newstr = newstr + arr2[i][j].toUpperCase();
} else {
// 소문자로 변환해서 더해줌
newstr = newstr + arr2[i][j].toLowerCase();
}
}
// 새로운 배열에 추가
arr3.push(newstr);
// 임시 배열 초기화
newstr = "";
}
}
//문자열을 이어줌
let result = arr3.join(" ");
//최종 출력
return result;
}
// 변수의 이름을 좀 더 명시적으로 해야 좋을 것 같다.