Home P12951. JadenCase 문자열 만들기
Post
Cancel

P12951. JadenCase 문자열 만들기

문제

image


제출 코드

  • 사용 알고리즘 : 문자열


문자열 문제는 쉬운듯 항상 까다롭다.

이 문제도 처음엔 쉽게 풀릴 줄 알고, 앞 문자열은 Upper, 나머지 문자열은 Lower를 적용해서 풀고 끝내려고 했는데 공백이 문제였다.

이 문제는 주어진 문자열의 공백 개수도 그대로 보존해야 해서, 이를 유지하려고 하다보니 코드가 복잡해졌다.

이번에 문제 풀다가 알게 된 건, StringtoUpperCasetoLowerCase로 숫자문자열에 적용해도 숫자는 변화하지 않는다는것. 따로 에러가 나진 않는다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
class Solution {
    public String solution(String s) {
        String answer = "";

        String remains = s;
        if(s.charAt(0)==' ') { // 시작문자열에 공백이 있는 경우
            int i=0;
            while(s.charAt(i++)==' ') answer += " ";
            remains = remains.substring(i);
        }

        while(true){
            int len = remains.length();
            if(len==0) break;

            int endPoint = remains.indexOf(" "); // 공백이 등장하는 최초 인덱스

            String word;
            if(endPoint<0) word = remains;
            else word = remains.substring(0, endPoint);

            answer += (word.charAt(0)+"").toUpperCase() + word.substring(1).toLowerCase();  // 변환된 문자열 추가
            if(endPoint<0) break; // 추가한 문자열이 마지막 문자열일 경우

            int cnt=1;
            while(++endPoint<len){ // 공백 추가
                if(remains.charAt(endPoint)==' ') cnt++;
                else break;
            }

            answer += " ".repeat(cnt);
            remains = remains.substring(endPoint);

        }

        return answer;
    }
}
This post is licensed under CC BY 4.0 by the author.