[코테] 이상한 문자 만들기

JulyK9·2023년 5월 3일
0

문제

문자열 s는 한 개 이상의 단어로 구성됨.
각 단어는 하나 이상의 공백문자로 구분됨.
각 단어의 짝수번째 알파벳은 대문자로,
홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수를 완성해야함.

제출코드

function solution(s) {
  
  // 단어를 만들어나갈 빈 문자열 준비
  let result = '';
  
  // 공백 단위로 단어들을 구분
  let words = s.split(" ")

  // 요소로 나눠진 각 단어를 돌아가면서 로직 구현
  for(let i = 0; i < words.length; i++) {
    // 단어의 짝홀수 자리를 체크해가면서 로직 구현
    for(let j = 0; j < words[i].length; j++) {
	  // 짝수일 때
      if(j % 2 === 0) {
        result += words[i][j].toUpperCase()
      } 
      // 홀수 일 때
      else {
        result += words[i][j].toLowerCase()
      }
    }
    // 단어 사이의 공백을 처리는 단어 단위 루프에서 처리
    if(i < words.length - 1) {
        result += " "
    }
  }
  return result;
}

접근방법

  • 각 단어의 짝홀수번째를 구분해줘야하므로 띄어쓰기 단위로 구분
  • 배열안에 요소로 나눠진 각 단어들을 돌아가면서 로직을 짜줘야하므로 for문 사용
  • 각 요소는 문자열로 짝홀수 자리를 체크하면서 로직을 구현해야하므로 for문 안에 for문 사용
  • 짝홀수 자리일 때 대소문자를 바꿔주는 로직 구현
  • 단어와 단어 사이의 공백 처리는 단어를 도는 반복 루프에서 처리해주면 됨

회고

  • 내부 반복문을 돌면서 짝홀 자리에 따라 문자열을 변환해서 더해나가는 로직을 구현할 때 지체됨
  • 공백을 처리하는 로직을 어떻게 구현할지 고민하는데 시간이 걸림. 단어 단위를 반복하는 로직에서 공백을 쉽게 만들어 줄 수 있다는 것을 알게 됨.

참고자료

profile
느리지만 꾸준하게. 부족하거나 잘못된 부분은 알려주시면 감사하겠습니다.

0개의 댓글