문제발생
문장이 있고 짝수인덱스는 대문자, 홀수인덱스는 소문자면 되는구나 라고 생각했다.
대충 for문 돌려서 코드를 작성하니 입출력 예시가 잘 나왔다.
그래서 제출을 누른 순간.. 줄줄이 빨간 에러를 볼 수 있었다.
시도
처음에는 시간복잡도 문제인줄 알았으나, map, split 등등 시도해보며 뭔가 이상하다는 것을 깨달았고, 질문게시판을 통해 힌트를 발견했다.
해결방법
"sp ace" -> "Sp AcE" 테스트 케이스는 적용해보라는 글이었다.
바로 적용해보니 "Sp aCe"로 출력됐다.
문제설명과 제한사항을 다시 읽어봤다.
각 단어
의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로
문자열 전체의 짝/홀수 인덱스가 아니라 단어(공백을 기준)별로 짝/홀수 인덱스를 판단
즉, 짝홀인덱스는 공백을 만나면 초기화를 시켜야했다.
그제서야 나는 문제를 제대로 파악할 수 있었다.
느낀점
레벨1문제라고 대충 파악하지 말자!
주어진 문제의 조건들을 면밀하게 검토하는 습관을 가져야겠다.
내 코드
function solution(s) {
let sArr = s.split('')
let index = 0;
for (let i = 0; i < sArr.length; i++) {
if (sArr[i] === ' ') { // 공백만나면 인덱스 초기화
index = 0;
} else if (index % 2 === 0) {
sArr[i] = sArr[i].toUpperCase();
index++;
} else {
sArr[i] = sArr[i].toLowerCase();
index++;
}
}
return sArr.join('')
}