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