코린이의 소소한 공부노트

[LeetCode/Easy] 2129. Capitalize the Title 본문

코딩테스트 풀이/JAVA

[LeetCode/Easy] 2129. Capitalize the Title

무지맘 2023. 1. 13. 19:26

1. Input

1) 문자열 title

 

2. Output

1) 아래 규칙에 따라 바꾼 문자열을 반환

// 규칙

- 단어의 길이가 1~2라면 모두 소문자로 바꾼다.

- 나머지의 경우 맨 앞글자는 대문자로 바꾸고 나머지는 소문자로 바꾼다.

 

3. Constraint

1) 1 <= title.length <= 100

2) title의 단어들은 공백 문자 1개로 구분되어 있다.

3) 각 단어들은 영어 대소문자로 이루어져 있다.

 

4. Example

Input: title = "capiTalIze tHe titLe" -> Output: "Capitalize The Title"

 

5. Code

1) 첫 코드(2022/06/22)

String result = "";
String[] t = title.split(" ");
for(int i=0 ; i<t.length ; i++){
    if(t[i].length() == 1 || t[i].length() == 2)
        result += t[i].toLowerCase() + " ";
    else{
        result += (t[i].charAt(0)+"").toUpperCase();
        result += t[i].substring(1,t[i].length()).toLowerCase() + " ";
    }
}

return result.substring(0,result.length()-1);

2) 다시 풀어본 코드(2023/01/13)

String answer = "";
String[] words = title.split(" ");
for(String s : words){
    if(s.length()<=2)
        answer += s.toLowerCase() + " ";
    else
        answer += s.substring(0,1).toUpperCase() + s.substring(1,s.length()).toLowerCase() + " ";
}
return answer.trim();

- 1번 코드에 비해 아주 약간 느려졌지만, 메모리는 덜 잡아먹는다.