알고리즘/프로그래머스

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

90만식 2025. 4. 16. 12:54
728x90
사용 언어 : JAVA
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/12951
레벨 : .2

✅ 문제 요약

  • 문자열 자르기와 숫자 판단 정규식을 이용한 간단한 풀이 문제
  • 숫자가 아닌 경우 문자열의 첫 문자를 대문자로 바꿔 주면 된다.
  • 단, 첫문자를 판단하는 기준은 공백문자(" ") 다음 문자

✅ 문제 설명

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

 

제한조건

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

예제 입력

// 입력 1
3people unFollowed me
// 입력 2
for the last week

 

예제 출력

// 출력 1
3people Unfollowed Me
// 출력 2
For The Last Week
728x90

✅ 핵심 아이디어/알고리즘

  • 입력 받을 문자열을 공백 기준으로 잘라 배열을 만든다
  • 공백일 경우에는 " " 
  • 공백이 아닐 경우 첫 번째 문자열을 정규식을 통해 숫자인지 판단하고
  • 숫자가 아닐 경우 대문자로 변경
  • 나머지는 소문자로 변경 한다.

✅ 직접 구현한 코드 (JAVA)

class Solution {
    public String solution(String s) {
        String[] strs = s.split(" ");

        String answer = "";
    
        for(int i=0; i<strs.length; i++){

            if(strs[i].length() == 0){
                answer += " ";
            }else{
                String firstStr = strs[i].substring(0,1);
                String remainStr = strs[i].substring(1).toLowerCase();

                if(firstStr.matches("[0-9]")){
                    answer +=  firstStr + remainStr + " ";
                }else{
                    answer += firstStr.toUpperCase() + remainStr + " ";
                }

            }
        }

        if(s.substring(s.length()-1, s.length()).equals(" ")){
            return answer;
        }


        return answer.substring(0, answer.length()-1);
    }
}

✅ 회고 / 배운 점

  • 문제를 읽고 직관적으로 판단이 가능한 간단한 문제
  • 정규식 패턴은 외우고 있지 않아, 검색해서 확인 함
728x90