728x90

문제


https://programmers.co.kr/learn/courses/30/lessons/12930

 

코딩테스트 연습 - 이상한 문자 만들기

문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을

programmers.co.kr

 

코드


function solution(s) {
  let newS = ""; //정답 변수
  s = s.split(" "); //공백 단위로 나누어 단어별로 나누기

  for (let i = 0; i < s.length; i++) {
    //단어의 개수만큼
    for (let j = 0; j < s[i].length; j++) {
      //각 단어의 철자 하나하나에 대해
      if (j % 2 === 0) newS = newS + s[i][j].toUpperCase();
      //짝수면 대문자
      else newS = newS + s[i][j].toLowerCase(); //홀수면 소문자
    }
    if (i < s.length - 1) newS = newS + " "; //마지막 단어의 전까지는 각 단어들 사이에 공백 추가
  }
  return newS;
}

 

후기


  • 처음에 정답풀이와 조금은 다르게 풀이를 했었는데, 히든 테케에서 2번 제외 모두 틀렸다고 나왔다
  • 원인을 보니, 문제에 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 라는 조건이 있었고, 입출력 예시를 예시로 들자면 밑과 같이 각 단어 사이에 한 개 이상의 공백들이 있는 경우를 제대로 처리하지 못했었다
    "try  hello   world"
  • 이 점만 유의해서 풀면 쉽게 해결할 수 있겠다!

+ Recent posts