본문 바로가기
개발공부_Blog/Algorithm

JadenCase 문자열 만들기

by 소팡팡 2024. 11. 28.

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

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

 

문제 아이디어 

JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 단, 첫 문자가 알파벳이 아닐 때에는 이어지는 알파벳은 소문자로 쓰면 됩니다. 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요.

  • 공백 문자열을 기준으로 각 단어를 쪼깨 배열로 만든다. split() 사용
  • 반복문을 돌면서 각 요소의 첫번째 단어는 대문자로, 나머지는 소문자로 표시한다 toUpperCase(), toLowerCase()
  • 두 단어를 합쳐 새 단어를 만들고, 배열에 새로 추가한다.
  • 배열에 추가한 단어는 string을 ‘ ‘ 이 붙어 있으니, join()으로 ‘ ‘ 을 풀어준다
function solution(s) {
  const stringArr = s.split(" ");
  const answer = [];

  for (let str of stringArr) {
    let oneStr = str[0].toUpperCase();
    let twoSrt = str.slice(1, str.length).toLowerCase();
    answer.push(oneStr + twoSrt);
  }
  return answer.join(" ");
}

 

주의사항!!!

제한 조건을 제대로 보지 않아서 테스트케이스 ㅋㅋㅋㅋ 틀려버림!!!!!!!!!

  • 공백문자가 연속해서 나올 수 있습니다.

위 내용을 읽었다면 첫번째 작성한 코드에서 빠진 부분이 있다는 걸 알 수 있다.ㅋㅋㅋ str의 [0]인덱스 값이 아무것도 없는 공백일 경우이다. 이 경우에는 toUpperCase()가 동작하지 않아서 런타임에러를 발생시킨다.

첫번째 문자열이 공백인 경우의 조건부 처리를 해줘야 한다. if문으로 처리를 해주고, 이 또한 answer에 공백으로 단어를 저장해줘야 한다.

function solution(s) {
  const stringArr = s.split(" ");
  const answer = [];

  for (let str of stringArr) {
    if (str.length > 0) {
      let oneStr = str[0].toUpperCase();
      let twoSrt = str.slice(1, str.length).toLowerCase();
      answer.push(oneStr + twoSrt);
    } else {
      answer.push("");
    }
  }
  return answer.join(" ");
}

'개발공부_Blog > Algorithm' 카테고리의 다른 글

프로그래머스-포켓몬  (0) 2024.11.29
완주하지 못한 선수  (0) 2024.11.29
프로그래머스 - 다리를 지나는 트럭  (0) 2024.11.20
프로그래머스-주식가격  (1) 2024.11.18
프로그래머스 - 프로세스  (0) 2024.11.17

댓글