[프로그래머스] JadenCase 문자열 만들기

김소은·2024년 7월 2일

알고리즘

목록 보기
34/55
post-thumbnail

프로그래머스의 Lv.2 JadenCase 문자열 만들기 문제 풀이

문제 설명

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

제한 사항

  • s는 길이 1 이상 200 이하인 문자열입니다.
  • s는 알파벳과 숫자, 공백문자(" ")로 이루어져 있습니다.
    • 숫자는 단어의 첫 문자로만 나옵니다.
    • 숫자로만 이루어진 단어는 없습니다.
    • 공백문자가 연속해서 나올 수 있습니다.

문제 풀이
우선 문자열 s를 공백을 기준으로 분리하되 공백을 유지하여 분리해주었다.
분리한 배열 words를 기준으로 순회하면서 다음과 같은 조건으로 문제를 풀었다.
1. 단어가 비어있지 확인
2. 비어있지 않다면 첫번째 단어가 알파벳인지 확인
3. 알파벳이라면 첫번째 단어 대문자로 변경, 뒤에는 소문자로 변경
4. 알파벳이 아니라면 모두 소문자로 변경
5. 마지막 단어가 아닐 경우 공백을 추가 (= 마지막 단어 전까지 한 단어가 끝나면 공백을 추가)

코드

public String solution(String s) {
   String[] words = s.split(" ", -1);

   StringBuilder sb = new StringBuilder();

   for (int i = 0; i < words.length; i++) {
     String word = words[i];
     if (!word.isEmpty()) {
       char first = word.charAt(0);
       if (Character.isLetter(first)) {
         sb.append(Character.toUpperCase(first));
         sb.append(word.substring(1).toLowerCase());
       } else {
         sb.append(first);
         sb.append(word.substring(1).toLowerCase());
       }
     }
     if (i < words.length - 1) {
       sb.append(" ");
     }
   }
   return sb.toString();
 }
profile
차근차근 잘 해보자!

0개의 댓글