본문 바로가기
Language/알고리즘 문제풀이

프로그래머스 JadenCase 문자열 만들기(Java)

by wakestand 2019. 9. 19.
반응형

사이트명 : 프로그래머스(Programmers)

문제명 : JadenCase 문자열 만들기

언어 : 자바(Java)

 

JadenCase 문자열 만들기에서 주로 봐야할 점은

아래의 두갠데

 

1. 첫 문자는 무조건 대문자 나머지는 다 소문자 (띄어쓰기 하면 반복)

2. 띄어쓰기는 한번만 사용되지 않음

 

내 풀이방법은 아래와 같다

 

먼저 전체 문자를 소문자로 바꿔준 뒤에 

for 문을 돌려서

 

띄어쓰기가 나오면 무조건 그 다음 글자를 대문자로 나오게 해야 하므로

flag를 0으로 준다

 

이후 flag가 0이면서 다음 글자가 띄어쓰기가 아니라면

그 글자는 대문자로 만들어서 붙인 뒤 flag를 올려 나머지는 다 소문자로 붙인다

 

이런 식으로 반복해 주면 끝이 나는데

대부분이 여기서 고전하는 이유가

 

띄어쓰기가 "AA    AAA BBBB" 이런 식으로 들어와있을 수도 있는데

띄어쓰기를 한번만 들어갔을 것이라 생각해서 틀리는 경우가 많다고 본다

 

마지막으로 프로그래머스에 바로 적용 가능한 코드는 아래와 같다

 

class Solution {
  public String solution(String s) {
	      String answer = "";
	      s = s.toLowerCase(); // 일단 전체 소문자 처리
	      int flag = 0;
	      
	      for(int i = 0; i<s.length(); i++) {
	    	  if(s.substring(i, i+1).equals(" ")) {
	    		  flag = 0; // 띄어쓰기 나오면 flag = 0 처리
	    	  }
	    	  
	    	  if(flag == 0 && !s.substring(i, i+1).equals(" ")) { // flag가 0인 상태에서 잘라낸 값이 " "가 아니라면
	    		  answer = answer + s.substring(i, i+1).toUpperCase(); // 대문자로 변환해서 answer에 붙임
	    		  flag++; // 다음 값은 소문자로 나올 것
	    	  } else {
	    		  answer = answer + s.substring(i, i+1).toLowerCase();
	    	  }
	      }
	      
	      return answer;
  }
}
반응형

댓글