알고리즘/프로그래머스
[프로그래머스] 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