Algorithm/JAVA

JadenCase 문자열 만들기

danso 2024. 8. 27. 16:52

💡 문제

JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 단, 첫 문자가 알파벳이 아닐 때에는 이어지는 알파벳은 소문자로 쓰면 됩니다. (첫 번째 입출력 예 참고)

문자열 s 주어졌을 , s JadenCase 바꾼 문자열을 리턴하는 함수, solution 완성해주세요.

💡 제한사항

  • s는 길이 1 이상 200 이하인 문자열입니다.
  • s는 알파벳과 숫자, 공백문자(" ")로 이루어져 있습니다.
    • 숫자는 단어의 첫 문자로만 나옵니다.
    • 숫자로만 이루어진 단어는 없습니다.
    • 공백문자가 연속해서 나올 있습니다.

입출력

 

 풀이

class Solution {
    public String solution(String s) {
        String answer = "";
        StringBuilder sb = new StringBuilder();
        boolean flag = true;
        for(char ch : s.toCharArray())
        {
            sb.append(flag ? Character.toUpperCase(ch) : Character.toLowerCase(ch));
            flag = ch == ' ';
        }
        answer = sb.toString();
        return answer;
    }
}
 
Java에서 String 객체끼리 더하는 방법은 메모리 할당과 해제를 발생 시킨다. 예를 들어 String a = "a"를 선언하고 a에 "b"라는 문자를 더 할 경우 a와 b를 연결하는 새 문자열이 생성되고 이전 문자는 가비지 컬렉터로 들어간다. 만약 엄청 많은 문자열을 연결해야 할 경우 성능 문제가 발생한다. 그러나 StringBuilder를 사용하면 변경 가능한 문자열을 만들어주기 때문에 String을 합칠 경우 해당 객체를 이용해서 작업한다. 단지, append를 이용하여 문자를 추가해야하고, 출력이나 문자를 다시 담아야 할 경우 toString을 사용한다.