문제 설명
https://school.programmers.co.kr/learn/courses/30/lessons/12951

제한 사항

입출력 예

풀이
class Solution {
public String solution(String s) {
StringBuilder result = new StringBuilder();
String[] str = s.trim().split(" +");
String[] space = s.split("[^ ]+");
for(int i = 0; i < str.length; i++) {
if(!str[i].matches("^\\d")) {
result.append(str[i].substring(0, 1).toUpperCase());
result.append(str[i].substring(1).toLowerCase());
}
str[i] = result.toString();
result.setLength(0);
}
for (int i = 0; i < str.length; i++) {
if (space.length > 0) result.append(space[i]);
result.append(str[i]);
}
if (space.length > str.length) result.append(space[space.length - 1]);
return result.toString();
}
}
후기
여러 가지 신경 쓸 게 많았던 문제였다. 공백이 앞뒤로 있다던가, 문자열이 문자 하나로 되어 있는 등 여러 상황을 잘 생각해 보고 처리해야 한다. 그런데 내 코드 절반 수준인 풀이도 있어서 한번 살펴봐야겠다.
'코딩테스트 (프로그래머스) > Java' 카테고리의 다른 글
| [프로그래머스][JAVA][Lv. 1] 하샤드 수 (0) | 2023.07.30 |
|---|---|
| [프로그래머스][JAVA][Lv.1] 핸드폰 번호 가리기 (0) | 2023.07.30 |
| [프로그래머스][JAVA][Lv. 2] 쿼드압축 후 개수 세기 (0) | 2023.07.26 |
| [프로그래머스][JAVA][Lv. 1] 폰켓몬 (0) | 2023.07.24 |
| [프로그래머스][JAVA][Lv. 1] 소수 찾기 (0) | 2023.07.24 |