프로그래머스 / 이상한문자 만들기 함정

flobeeee·2021년 5월 6일
0

코딩문제

목록 보기
1/6
post-thumbnail

풀러가기

문제발생

문장이 있고 짝수인덱스는 대문자, 홀수인덱스는 소문자면 되는구나 라고 생각했다.
대충 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('')
}
profile
기록하는 백엔드 개발자

0개의 댓글