function solution(s) {
let answer = [];
let count = 0;
for (let i = 0; i < s.length; i++) {
if (count % 2 === 0) {
answer.push(s[i].toUpperCase());
count++;
} else {
answer.push(s[i].toLowerCase());
count++;
}
if (s[i] === ' ') {
// answer.push(' ');
count = 0;
}
}
return answer.join('');
}
처음에는 보고 어떻게 풀지 싶었는데... 아침에 머리 감다가 불현듯 '공백을 기준으로 초기화되는 변수가 하나 있으면 되지 않을까' 하는 아이디어가 떠올랐고 결국 문제를 풀어낼 수 있었다 ㅎㅎ
어레이와 join
함수를 사용했기 때문에 공백이 나올 때 answer 어레이에도 공백 문자를 담아주어야 한다고 생각해서 현재 주석 처리한 부분을 작성했었는데, 다시 보니 s[i]
가 공백인지 확인하기 전에 if ... else
구문에서 이미 공백 부분이 answer.push(s[i].toLowerCase())
코드를 통해 answer
어레이에 담기고 있었다.
일부를 삭제하고 정답 처리를 받기는 했지만 의도했던 방식은 아니어서 코드를 수정했다. 다른 풀이를 참고해보니 어레이를 굳이 사용하지 않고 문자열에 문자를 더하는 방식으로 문제를 풀 수 있을 것 같아서 그 부분도 수정했다.
function solution(s) {
let answer = '';
let count = 0;
for (let i = 0; i < s.length; i++) {
if (s[i] === ' ') {
answer += ' ';
count = 0;
} else if (count % 2 === 0) {
answer += s[i].toUpperCase();
count++;
} else {
answer += s[i].toLowerCase();
count++;
}
}
return answer;