1주 1알고리즘 문제 풀기👆
문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.
s
로 try hello world
를 넘겨주면 TrY HeLlO WoRlD
를 리턴한다.
string
을 split method
를 통해 띄어쓰기 별로 나누어 array
로 만든다 for문
을 통해 바뀔 string
을 담을 배열을 만든다. 홀수index
는 소문자
로, 짝수index
는 대문자
로 바꾸어 string에 더해준다.string
을 기존에 만들어진 빈 array인 newArray
에 push
해서 담아준다. string
이 newArray
에 다 담겼으면 join
함수를 통해 다시 string으로 합쳐준다. function solution(s) {
let splitString = s.split(" ");
let newArray = [];
for (let i = 0; i < splitString.length; i++) {
let string = "";
for (let j = 0; j < splitString[i].length; j++) {
if (j % 2 === 1) {
string += splitString[i][j].toLowerCase();
} else if (j % 2 === 0) {
string += splitString[i][j].toUpperCase();
}
}
newArray.push(string);
}
return newArray.join(" ");
}
다른 예시도 거의 이중 for 문은 비슷했다. 간혹 map에 map을 돌린후 join하는 한줄 식 코드들이 좋아요를 많이 받은 답변들 중에도 있었는데, 사실 그렇게 하면 직관적으로 더 보기 힘든것 같기도 해서 좋은 답변인지 모르겠다. (짧다고 무조건 좋은 코드는 아니라고들 었....) 아무튼 시간은 오래 걸렸지만 이중 for문 연습은 제대로 한것 같아서 오케이! 🤓