코딩테스트(Java)/프로그래머스 2단계

[프로그래머스] JadenCase 문자열 만들기 - JAVA

영드로이드개발자 2024. 2. 28. 15:40
반응형

문제

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

 

프로그래머스

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

programmers.co.kr

입출력

이 문제는 프로그래머스 2단계 문제중 가장 정답률이 높은 문제이다.

딱히 생각할 부분은 없지만 공백문자에 대해서만 유의해서 코드를 작성하면 크게 어렵지는 않은 문제 였다.

해당 작성코드보다 좋은 의견이 있으면 남겨주길 바란다.

 

class Solution {

    public static void main(String[] args) {
        String s = "3people unFollowed me";
        System.out.println(solution(s));
    }


    static public String solution(String s) {
        String answer;
        StringBuilder sb = new StringBuilder();
        StringBuilder resultSb = new StringBuilder();

        for (int i = 0; i <= s.length(); i++) {
            if (i != s.length() && s.charAt(i) != ' ') {
                sb.append(s.charAt(i));
            } else {
                System.out.println(sb);
                if (sb.length() != 0) {
                    String beforeStr = sb.toString();
                    String changedStr;
                    boolean alphabetCheck = beforeStr.charAt(0) >= 'a' && beforeStr.charAt(0) <= 'z';
                    String firstChar = String.valueOf(beforeStr.charAt(0)).toUpperCase();
                    if (beforeStr.length() > 1 && alphabetCheck) {
                        changedStr = firstChar + beforeStr.substring(1).toLowerCase();
                    } else if (beforeStr.length() == 1 && alphabetCheck) {
                        changedStr = firstChar;
                    } else {
                        changedStr = beforeStr.charAt(0) + beforeStr.substring(1).toLowerCase();
                    }
                    resultSb.append(changedStr);
                    sb.setLength(0);
                }
                if (i != s.length()) resultSb.append(" ");
            }
        }
        answer = resultSb.toString();
        return answer;
    }
}

느낀점

해당 문제 같은 경우도 어려운 부분은 없는 기초적인 문제이지만 공백에 대해서는 유의하여 코드를 짤 필요가 있는것 같다.

반응형