원하는 것은 뭐든지

99클럽 코테 스터디 4일차 TIL , JadenCase 문자열 만들기 본문

개발/문제풀이

99클럽 코테 스터디 4일차 TIL , JadenCase 문자열 만들기

댕로그😏 2024. 7. 25. 15:20
반응형

문제

풀이

문장이 주어지고 단어의 시작이 대문자여야 한다.

단어의 시작이 숫자면 그대로 두고 뒤에 문자들은 소문자여야 한다.

 

1. 숫자는 단어의 첫 문자로만 나옵니다.

2. 숫자로만 이루어진단어는 없습니다.

두 개의 조건은 상관이 없었는데

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

이 조건을 간과해서 조금 오래 걸렸다.

 

제출 - 정답

StringBuilder를 사용해서 answer 객체를 선언하고, 문장을 lowercase변환 후 charArray로 변환한다.

첫 번째 문자가 조건에 맞는다면 uppercase 변환 후 넣어준다.

한 문자씩 넣으면서 이전 문자가 공백이었고 현재 문자가 lowercase면 uppercase로 변환한 후 넣어준다.

class Solution {
    public String solution(String s) {
        StringBuilder answer = new StringBuilder();
        String lowerCase = s.toLowerCase();	//소문자로 전부 바꿔주기
        char[] chrArr = lowerCase.toCharArray();	//charArray로 변환
        
        //첫 글자 변환
        if(Character.isLowerCase(chrArr[0])) chrArr[0] = (char)(chrArr[0] - 32);
        answer.append(chrArr[0]);
        
        for(int i=1;i<chrArr.length;i++){
        	//이전 문자 공백이고 지금 문자 숫자 아니면 대문자 변환
            if(Character.isWhitespace(chrArr[i-1]) && Character.isLowerCase(chrArr[i])){
                chrArr[i] = (char)(chrArr[i] - 32);
            }
            answer.append(chrArr[i]);
        }
        
        return answer.toString();
        
    }
}

 

TIL

  • StringBuilder와 Character 클래스의 메서드를 다시 익힐 수 있었다.
  • 세 번째 제한조건을 제대로 인지하지 않아서 오랜 시간문제를 풀었는데, 문제를 완전히 이해한 후에 풀이를 시작해야겠다.
반응형
Comments