[LeetCode] Capitalize the Title

아르당·2026년 8월 9일

LeetCode

목록 보기
454/561
post-thumbnail

문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음

Problem

단일 공백으로 구분되는 하나 이상의 단어로 구성되는 문자열 title이 주어지고, 각 단어는 영어로 구성된다.
각 단어의 대소문자를 다음과 같이 변경해서 문자열을 대문자화해라.

  • 단어의 길이가 1 또는 2이면, 모든 문자를 소문자로 바꾼다.
  • 그렇지 않으면 첫 번째 문자를 대문자로 나머지를 소문자로 바꾼다.

대문자화한 title을 반환해라.

Example

#1
Input: title = "capiTalIze tHe titLe"
Output: "Capitalize The Title"
Explanation:
모든 단어는 길이가 3이상이고, 각 문자의 첫 번째 문자를 대문자로, 나머지 문자를 소문자로 한다.

#2
Input: title = "First leTTeR of EACH Word"
Output: "First Letter of Each Word"
Explanation:
단어 "of"는 길이가 2라서, 모두 소문자이다.
나머지 단어는 길이가 3이상이라서, 각 단어의 첫 번째 문자는 대문자이고, 나머지는 소문자이다.

#3
Input: title = "i lOve leetcode"
Output: "i Love Leetcode"
Explanation:
단어 "i"는 길이가 1이라서, 소문자이다.
나머지 단어는 길이가 3이상이라서, 각 단어의 첫 번째 문자는 대문자이고, 나머지는 소문자이다.

Constraints

  • 1 <= title.length <= 100
  • title은 맨 앞과 맨 뒤에 공백 없이 단일 공백으로 구분된 단어로 구성된다.
  • 각 단어는 영어 대소문자로 구성되고 비어있지 않다.

Solved

class Solution {
    public String capitalizeTitle(String title) {
        String[] words = title.split(" ");

        for(int i = 0; i < words.length; i++){
            if(words[i].length() <= 2){
                words[i] = words[i].toLowerCase();
            }else{
                words[i] = words[i].substring(0, 1).toUpperCase() + words[i].substring(1).toLowerCase();
            }
        }

        return String.join(" ", words);
    }
}
profile
내 마음대로 코드 작성하는 세상

0개의 댓글