다희의 코딩 성장일기

[프로그래머스] level2. JadenCase 문자열 만들기 (자바 JAVA) 본문

Algorithm/프로그래머스

[프로그래머스] level2. JadenCase 문자열 만들기 (자바 JAVA)

ilmiodiario 2021. 8. 27. 20:13

[ 문제 ]  [프로그래머스] level2. JadenCase 문자열 만들기 (자바 JAVA)

 

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

 

코딩테스트 연습 - JadenCase 문자열 만들기

JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요. 제한 조건

programmers.co.kr


# 접근 방법 및 풀이 

 

  • 예외를 잘 처리해야 다 맞을 수 있는 문제다. 처음에 spilt를 공백기준으로 했다가 반례 발견했다.
  • 문자열 s는 공백만으로도 이루어질 수 있고 "ab   ", "  ab c  " 이런식으로 공백까지 다 포함해야한다.
  • 만약 다 맞는데 8번만 틀린다면 "   " 아무것도 없을때 공백 갯수대로 잘 나오는지 확인해보아야한다.
  • 나는 StringTokenizer로 공백도 토큰에 포함해서 문자를 잘랐다. nextToken() 했을 때 공백이면 그냥 StringBuilder에 공백을 더해주고,
  • 공백이 아닐 경우 문제대로 처리해주면 된다.
  • 자세한건 코드참조

# 주의할 점 

 

  • "   ", "  ab ", " ab  c " < 공백에 대한 예외처리 잘 확인해보기.

 

JAVA 코드
import java.util.*;
class Solution {
    public static String solution(String s) {
        StringTokenizer st = new StringTokenizer(s, " ",true);
        StringBuilder sb = new StringBuilder();
        while(st.hasMoreTokens()) {
        	String ss = st.nextToken();
        	if(ss.equals(" "))
        		sb.append(ss);
        	else {
        		sb.append(ss.substring(0,1).toUpperCase()+ss.substring(1, ss.length()).toLowerCase());
        	}
        }
        return sb.toString();
    }
}

 

 

 

REVIEW

Comments