반응형
728x90
반응형
문제 12901번
https://programmers.co.kr/learn/courses/30/lessons/12951
풀이
(1) 런타임 에러 발생
예시로 "3people Unfollowed Me" 처럼 공백이 2개 이상 들어간 경우 발생한다.
public String solution(String s) {
StringBuilder answer = new StringBuilder();
String[] arr = s.split(" ");
for (String value : arr) {
char first = value.charAt(0);
answer.append(String.valueOf(first).toUpperCase())
.append(value.substring(1).toLowerCase())
.append(" ");
}
return answer.toString().trim();
}
(2) 다른 방안
문자열을 반복문으로 전부 체크한다. isFirst 라는 값으로 첫번째 문자열 (대문자로 변환될) 인지 체크하고, 그 외는 소문자로 변환한다.
public String solution(String s) {
StringBuilder answer = new StringBuilder();
/* 첫번째 문자 여부 */
boolean isFirst = true;
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == ' ') {
answer.append(s.charAt(i));
isFirst = true; /* 공백 다음엔 첫번째 문자 */
} else {
if (isFirst) { /* 첫번째 문자의 경우 */
answer.append(String.valueOf(s.charAt(i)).toUpperCase());
isFirst = false; /* 첫번째 문자가 아님 */
} else {
answer.append(String.valueOf(s.charAt(i)).toLowerCase());
}
}
}
return answer.toString();
}
반응형
'Algorithm > Problem Solving' 카테고리의 다른 글
[프로그래머스] Level2 _42586번: 기능개발 (JAVA) (0) | 2021.09.10 |
---|---|
[프로그래머스] Level2_12924번: 숫자의 표현 (JAVA) (0) | 2021.09.05 |
[프로그래머스] Level1 _12901번: 2016년 (JAVA) (0) | 2021.08.28 |
[프로그래머스] Level1_12903번: 같은 숫자는 싫어 (JAVA) (0) | 2021.08.28 |
[Baekjoon 9012번] 괄호 풀이 (with 스택) (0) | 2021.08.27 |