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

somyeong·2022년 10월 28일
0

프로그래머스

목록 보기
13/14

문제 링크 - https://school.programmers.co.kr/learn/courses/30/lessons/12951

🌱 문제


🌱 풀이

  • 간단해보이는데 헷갈리는 문제였다.
  • 처음엔 문자열 s를 공백단위로 나눠서 String[]에 담은 후에 진행했는데 테케가 거의 절반넘게 틀렸다. (공백문자가 연속해서 나올 수 있다는 조건때문에 그런것 같다)
  • 그래서, 문자열 s를 돌면서 해당 문자를 그대로 유지할지, 대문자로 바꿔줄지, 소문자로 바꿔줄지에 대한 조건을 통해 변환하고, 그 char를 answer (String)에 추가하여 answer를 완성했다.
  • 자세한 풀이는 주석 참고

🌱 코드

import java.util.*;

class Solution {
    public String solution(String s) {
        String answer = "";
        
        int n = s.length();
        boolean isNextUpper=false; // 다음 문자가 대문자로 와야하면 true, 소문자로 와야하면 false
        for(int i=0; i<n; i++){
            
            char cur = s.charAt(i);
            
            if(i==0 || isNextUpper){ // 숫자는 toUpperCase 해도 그대로 숫자이다.
                answer+=Character.toUpperCase(cur);
                isNextUpper=false; // 한 단어에서 대문자 뒤에는 전부 소문자여야 하므로 false로 바꿔준다.
            }
            else
                answer+=Character.toLowerCase(cur);
            
            if(cur==' ') // 현재 char가 공백이면 그 다음문자는 대문자가 되어야하므로 isNextUpper를 true로 바꿔준다.
                isNextUpper=true;
            
        }
       
        
        return answer;
    }
}
profile
공부한 내용 잊어버리지 않게 기록하는 공간!

0개의 댓글