https://school.programmers.co.kr/learn/courses/30/lessons/12951
평범하게 문자열을 이용한 문제였다.
다만 주의할 곳은 맨 마지막에 공백 처리
문제 처음부터 마지막 문자가 공백이라면 그대로 출력
매번 문자가 끝날 때마다 공백을 추가해줬으므로 공백이 추가된 상태
따라서 맨 마지막 문자가 공백이 아니라면 공백 제거해서 출력
charAt(index), Character.toUpperCase(character), trim() 등의 메소드 이용
/**
문제 처음부터 마지막 문자가 공백이라면 그대로 출력
매번 문자가 끝날 때마다 공백을 추가해줬으므로 공백이 추가된 상태
따라서 맨 마지막 문자가 공백이 아니라면 공백 제거해서 출력
**/
class Solution {
public String solution(String s) {
String answer = "";
String[] words = s.split(" ");
char endCharacter = s.charAt(s.length()-1); // 마지막 글자
for(int i=0; i<words.length; i++){
for(int j=0; j<words[i].length(); j++){
char alpha = words[i].charAt(j);
if(j == 0) alpha = Character.toUpperCase(alpha); // 첫 글자는 무조건 대문자
else alpha = Character.toLowerCase(alpha); // 그 다음 글자부터는 소문자
answer += alpha;
}
answer += ' '; // 단어가 끝날 때마다 공백 추가
}
// 맨 마지막 글자 공백 처리
if(endCharacter == ' '){
// 원래 맨 마지막에 공백이 온다면 그대로 반환
return answer;
} else{
// 임의적으로 공백이 추가된 경우이므로 해당 공백을 잘라서 반환
return answer.trim();
}
}
}