[Java] 프로그래머스 Lv2_JadenCase 문자열 만들기

Updated:

Categories:

Tags: ,

📌 개인적인 공간으로 공부를 기록하고 복습하기 위해 사용하는 블로그입니다.
정확하지 않은 정보가 있을 수 있으니 참고바랍니다 :😸
[틀린 내용은 댓글로 남겨주시면 복받으실거에요]

[Java] 프로그래머스 Lv2_JadenCase 문자열 만들기

풀어보기🔗: JadenCase 문자열 만들기

첫 번째 시도 : 테스트 8 만 실패

문자는 jadencase로 만들어야 하기 때문에 문자의 첫 글자만 대문자로 만들고 나머지는 소문자이어야 한다.

그래서 문장을 띄어쓰기로 다 분리하고 , 첫 글자만 대문자로 나머지 글자는 소문자로 변경하여 이어 붙이면 된다.

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
class Solution {
    public String solution(String s) {
        StringBuilder answer = new StringBuilder();
        
        String[] strArr = s.split(" ");
        for (String str : strArr) {
        // 문자가 공백이 아니라면
            if(!str.isEmpty()) {
                char c = str.charAt(0);
		            
		            // 첫 글자가 문자라면 대문자로 변경한 후 추가
                if(Character.isLetter(c)) {
                    answer.append(Character.toUpperCase(c));
                } else {
                    answer.append(c);
                }
								
								//첫글자가 아니라면 소문자로 추가
                answer.append(str.substring(1).toLowerCase());
            }
            
            //기존 공백 추가
            answer.append(" ");
        }
        
        return answer.toString().substring(0, answer.length()-1);
    }
}
  • 무난하게 통과할 것 같았는데 8번만 실패함…

문제의 유의사항을 다시 읽어보니 공백이 여러 개 있을 수 있다는 점이 신경 쓰였다. 따라서 공백 처리에 문제가 있을 가능성이 있다고 생각했다.

특히 마지막 문자가 공백일 경우, 기존 코드가 공백을 임의로 제거해버리는 문제가 있는 것 같아서 이 부분을 먼저 수정해보기로 했다.. JadenCase 변환에서는 원래 문자열의 공백을 유지해야 한다.

두 번째 시도

그래서 마지막 for문 후에 조건문을 추가하여 원래 문장에서 마지막이 공백일 때는 바로 return 하고

아닐 경우에는 마지막 공백을 제거해 주었다,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution {
    public String solution(String s) {
        /*  ...
            생략
            ...
        */

       //기존 문자에 공백이 있다면 공백 제거 없이 바로 반환
       if(s.substring(s.length() -1, s.length()).equals(" ")) return answer.toString();
        
        //기존 문자에 공백이 없ㄱ다면 공백 제거 후 반환
        return answer.toString().substring(0, answer.length()-1);
    }
}


공백 문제를 처음에 인지 못해서 꽤 시간이 소요되었는데 정답률 높다고 만만하게 봐서 그런가, 아직 갈 길이 멀었다고 생각이 들었다.

매일 열심히 풀어야지🤲






Programmers 카테고리 내 다른 글 보러가기

Leave a comment