프로그래머스 알고리즘 문제풀이 lvl.1 - 이상한 문자 만들기

Jung Hyun Kim·2021년 1월 20일
0
post-thumbnail

1주 1알고리즘 문제 풀기👆

문제

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

입출력 예

stry hello world를 넘겨주면 TrY HeLlO WoRlD 를 리턴한다.


나의 풀이

  1. 먼저 받은 stringsplit method를 통해 띄어쓰기 별로 나누어 array로 만든다
  2. for문을 통해 바뀔 string을 담을 배열을 만든다.
  3. 빈 array인 string변수를 만들고, 띄어쓰기 만큼 split된 string길이만큼 for문을 돌면서 이중for문을 돌려서 각각의 string에서 홀수index소문자로, 짝수index대문자로 바꾸어 string에 더해준다.
  4. 그러고 난 뒤 만들어진 string을 기존에 만들어진 빈 array인 newArraypush해서 담아준다.
  5. 바뀐 stringnewArray에 다 담겼으면 join 함수를 통해 다시 string으로 합쳐준다.
function solution(s) {
  let splitString = s.split(" ");
  let newArray = [];
  for (let i = 0; i < splitString.length; i++) {
    let string = "";
    for (let j = 0; j < splitString[i].length; j++) {
      if (j % 2 === 1) {
        string += splitString[i][j].toLowerCase();
      } else if (j % 2 === 0) {
        string += splitString[i][j].toUpperCase();
      }
    }
    newArray.push(string);
  }
  return newArray.join(" ");
}

느낀점

다른 예시도 거의 이중 for 문은 비슷했다. 간혹 map에 map을 돌린후 join하는 한줄 식 코드들이 좋아요를 많이 받은 답변들 중에도 있었는데, 사실 그렇게 하면 직관적으로 더 보기 힘든것 같기도 해서 좋은 답변인지 모르겠다. (짧다고 무조건 좋은 코드는 아니라고들 었....) 아무튼 시간은 오래 걸렸지만 이중 for문 연습은 제대로 한것 같아서 오케이! 🤓

profile
코린이 프론트엔드 개발자💻💛🤙🏼

0개의 댓글