Computer Science (CS)/알고리즘

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

eune7 2023. 4. 28. 00:06
728x90
반응형

 

 

 


 

문제

 

 

 

정답 풀이

첫 시도(정답률 44%)

  1. 공백을 기준으로 입력받은 문자열을 잘라 배열에 저장
  2. substring을 활용하여 첫 문자는 대문자로 변경하여 answer에 저장
  3. 그 이후 문자들은 소문자로 변경하여 answer에 저장
  4. 공백 더해주기
  5. 문자열 마지막까지 공백이 생기므로 값을 반환해줄 때 substring을 활용하여 마지막 문자는 삭제해주기
class Solution {
    public String solution(String s) {
        String answer = "";
        String[] arr = s.split(" ");
        for(int i = 0; i < arr.length; i++){
            answer += arr[i].substring(0, 1).toUpperCase();
            answer += arr[i].substring(1).toLowerCase();
            answer += " ";
        }
        return answer = answer.substring(0, answer.length()-1);
    }
}

이렇게 한 후 코드 실행을 하면 44%가 나옵니다.

그 이유는 제한 조건을 보면 나오는데요

  • 공백문자가 연속해서 나올 수 있습니다.

이것 때문에..엄청 헤맸어요ㅠㅠ 어디서 잘못했는지를 모르겠어서..

 

다음이 정답 코드입니다!!

class Solution {
    public String solution(String s) {
        String answer = "";
        String[] arr = s.split(" ");
        for(int i = 0; i < arr.length; i++){
            // 추가한 if문
            if(arr[i].length() == 0){
                answer += " ";
            }
            else{
                answer += arr[i].substring(0, 1).toUpperCase();
                answer += arr[i].substring(1).toLowerCase();
                answer += " ";
            }
        }
        // 추가한 if문
        if(s.substring(s.length()-1, s.length()).equals(" ")) 
            return answer;
        return answer = answer.substring(0, answer.length()-1);
    }
}

전반적인 흐름은 44%코드와 같습니다만

  • 만약 문자열의 길이가 0 즉 공백이라면 answer에 " "을 추가해줍니다.
  • 만약 입력 받은 문자열의 맨 마지막이 " "이라면 바로 answer을 반환합니다.

 

 

 

 

728x90
반응형