프로그래머스 JadenCase 문자열 만들기 JAVA 풀이 (문자열, 구현)

2026. 6. 20. 23:49·코테(Solved.ac + Programmers)
728x90

🔗 문제 링크

 

프로그래머스

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

programmers.co.kr


📌 문제 개요

문자열 s가 주어졌을 때, 각 단어를 JadenCase 형태로 변환하는 문제이다.

JadenCase는 각 단어의 첫 문자가 대문자이고, 나머지 문자는 소문자인 문자열을 의미한다.

 

단, 첫 문자가 숫자인 경우 숫자는 그대로 두고, 그 뒤에 나오는 알파벳들은 소문자로 변환해야 한다.

또한 문자열에는 공백이 연속해서 나올 수 있으므로, 기존 공백 형태를 그대로 유지해야 한다.


📌 접근 방법

문자열을 공백 기준으로 나누는 대신, 문자 하나씩 순회하면서 처리한다.

현재 문자가 단어의 첫 번째 문자인지 판단하기 위해 isFirst 변수를 사용한다.

 

공백을 만나면 그대로 결과 문자열에 추가하고, 다음 문자가 새 단어의 첫 글자가 되도록 isFirst를 true로 변경한다.

공백이 아닌 문자를 만났을 때는 isFirst 값에 따라 대문자 또는 소문자로 변환한다.


📌 핵심 아이디어

1. 단어의 첫 글자인지 확인하기

isFirst는 현재 문자가 단어의 첫 번째 문자인지 확인하기 위한 변수이다.

처음 문자는 단어의 시작이므로 true로 설정한다.

boolean isFirst = true;
 

 

2. 공백을 만나면 다음 문자를 단어의 첫 글자로 처리하기

공백은 변환하지 않고 그대로 결과 문자열에 추가한다.

그리고 공백 다음에 나오는 문자는 새로운 단어의 첫 글자가 되므로 isFirst를 true로 변경한다.

if (ch == ' ') {
    answer += ch;
    isFirst = true;
}

 

3. 첫 글자는 대문자로 변환하기

현재 문자가 단어의 첫 글자라면 대문자로 변환한다.

숫자인 경우 Character.toUpperCase()를 사용해도 그대로 유지된다.

if (isFirst) {
    answer += Character.toUpperCase(ch);
    isFirst = false;
}

 

4. 첫 글자가 아닌 문자는 소문자로 변환하기

단어의 첫 글자가 아닌 문자는 모두 소문자로 변환한다.

이를 통해 "unFollowed" 같은 문자열도 "Unfollowed" 형태로 만들 수 있다.

else {
    answer += Character.toLowerCase(ch);
}

📌 전체 코드

class Solution {
    public String solution(String s) {
        String answer = "";
        boolean isFirst = true;

        for (int i = 0; i < s.length(); i++) {
            char ch = s.charAt(i);

            if (ch == ' ') {
                answer += ch;
                isFirst = true;
            } else {
                if (isFirst) {
                    answer += Character.toUpperCase(ch);
                    isFirst = false;
                } else {
                    answer += Character.toLowerCase(ch);
                }
            }
        }

        return answer;
    }
}
 

📄 정리

  • 문자열을 한 글자씩 순회하면서 JadenCase로 변환했다.
  • 공백을 기준으로 단어의 시작 여부를 판단했다.
  • 연속 공백을 유지해야 하므로 split()보다 직접 순회 방식이 적합하다.
  • 첫 문자는 대문자, 나머지 문자는 소문자로 변환하는 것이 핵심이다.
728x90

'코테(Solved.ac + Programmers)' 카테고리의 다른 글

프로그래머스 올바른 괄호 JAVA 풀이 (스택)  (0) 2026.06.22
프로그래머스 최솟값 만들기 JAVA 풀이 (그리디, 정렬)  (0) 2026.06.21
프로그래머스 최댓값과 최솟값 JAVA 풀이 (문자열, 구현)  (0) 2026.06.18
프로그래머스 이웃한 칸 JAVA 풀이  (0) 2026.06.18
프로그래머스 실패율 JAVA 풀이 (정렬, 구현)  (0) 2026.06.17
'코테(Solved.ac + Programmers)' 카테고리의 다른 글
  • 프로그래머스 올바른 괄호 JAVA 풀이 (스택)
  • 프로그래머스 최솟값 만들기 JAVA 풀이 (그리디, 정렬)
  • 프로그래머스 최댓값과 최솟값 JAVA 풀이 (문자열, 구현)
  • 프로그래머스 이웃한 칸 JAVA 풀이
PUSH → MERGE → DEPLOY
PUSH → MERGE → DEPLOY
데이터 흐름과 운영 자동화를 설계하는 백엔드 개발자
  • PUSH → MERGE → DEPLOY
    Coding Dongin
    PUSH → MERGE → DEPLOY
  • 전체
    오늘
    어제
    • MEUN
      • 코테(Solved.ac + Programmers)
      • BootCamp(JAVA)
      • JAVA
      • SpringBoot
      • JavaScript
      • JSP
      • DB(SQL)
      • React
      • HTML_CSS
      • jQuery
      • SCSS
      • GSAP
      • 설치 + 꿀팁
      • 정보처리기사 오답노트
      • 정보처리기사 기출문제
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GIT
  • 공지사항

  • 인기 글

  • 태그

    java
    수학
    실기
    프로그래머스
    브루트포스
    시뮬레이션
    level1
    백엔드개발자
    구현
    정처기
    Level2
    dp
    백준
    정보처리기사 실기 기출문제
    피보나치
    자바
    알고리즘
    배열
    정렬
    기출문제
    정처기실기
    정처기오답노트
    정보처리기사
    자료구조
    문자열
    완전탐색
    solved.ac
    level0
    springboot
    코딩테스트
  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.4
PUSH → MERGE → DEPLOY
프로그래머스 JadenCase 문자열 만들기 JAVA 풀이 (문자열, 구현)
상단으로

티스토리툴바