프로그래머스 - JadenCase 만들기

Kyle·2022년 9월 17일
0

Algorithm

목록 보기
4/4

https://school.programmers.co.kr/learn/courses/30/lessons/12951

오늘의 문제는 레벨2에서 비교적 간단하고 정답율도 높은 jadenCase만들기이다.

다음의 제한 조건 안에서 주어진 문자열을 JadenCase로 만드는 문제이다.

고민한 과정은 다음과 같다.

  1. 공백으로 띄어쓰기가 되어 있기 때문에 split() 메서드를 통해서 배열을 새로 받아와야겠다.

  2. 배열의 요소 중 첫번째 문자에서 인덱스 0에 해당하는 문자만 toUpperCase를 통해 대문자로 만들고 나머지는 합쳐야겠다. -> case1에서 unFollowed와 같이 첫번째 글자를 제외한 다른 인덱스에서 대문자가 나왔을 경우 실패함

  3. 애초에 처음 받아올 때 모두 다 소문자로 바꿔서 받아와야겠다. -> 기존의 split() 메서드에 map() 메서드를 추가하여 모든 문자를 소문자로 변경

  4. 실행 결과 공백문자가 연속해서 나올 경우 실패함 -> if문 안에 case를 따로 둬서 공백에 대해서 처리할 수 있는 식을 추가

완성!

function solution(s) {
  const temp = s.split(" ").map((e) => e.toLowerCase());
  let answer = "";
  for (let i = 0; i < temp.length; i++) {
    if (temp[i].length > 0) {
      let a = temp[i][0].toUpperCase();
      let b = temp[i].slice(1, temp[i].length) + " ";
      answer += a + b;
    } else {
      answer += " ";
    }
  }
  return answer.slice(0, -1);
}

해결한 코드는 위와 같다. 단어와 단어 사이를 띄우고자 b의 마지막에 공백을 추가했는데 이 때문에 return에서 slice() 메서드로 가장 마지막에 들어간 불필요한 공백을 없앴다.

오코완!

profile
불편함을 고민하는 프론트엔드 개발자, 박민철입니다.

0개의 댓글