[Programmers] JadenCase 문자열 만들기

2023. 8. 7. 18:01Computer Sciences/Problem Solve

https://school.programmers.co.kr/learn/courses/30/lessons/12951#

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제 설명

숫자, 영문자, 공백(" ")으로 구성된 문자열이 주어진다. 첫 글자가 문자면 대문자로 바꾼 형태로 변환하여 반환하는 함수를 만들면 된다. 처음에는 평소 하던대로 split(" ")을 사용했다가 공백 조건에서 오류가 발생했다. 그래서 공백 처리를 어떻게 할까 고민하다가 공백을 만나면 그냥 추가하는 방식으로 구현했다. 공백을 -로 대체하고 예시를 들자면 This---is-sample 이라고 문자열이 주어지면 결과로는 "This---Is-Sample" 이 나와야 한다. 즉, 문자를 순회하면서 공백을 만나면 추가하면 된다. 문자열이라면 isNewWord 라는 변수를 두고 문자가 시작된 경우 대문자로 변경하여 추가하고 false로 변경하여 공백이 나올때까지 나머지 문자를 소문자로 변경하여 추가하면 된다.

코드

class Solution {
    public String solution(String s) {
        StringBuilder result = new StringBuilder();
        boolean isNewWord = true;

        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);

            if (c == ' ') {
                result.append(c);
                isNewWord = true;
            } else if (isNewWord) {
                result.append(Character.toUpperCase(c));
                isNewWord = false;
            } else {
                result.append(Character.toLowerCase(c));
            }
        }

        return result.toString();
    }
}