문제 출처 - Programmers
문제는 여기
[풀이]
1. 입력되는 문자열을 toLowerCase로 모든 문자를 소문자로 바꿔준다.
2. split을 사용해서 모든 문자를 잘라서 배열에 넣어준다.
3. 공백 체크를 해줄 변수를 선언해준다.
4. 이전에 공백이 왔는지 체크를 해준다.
5. 이전에 공백이라면 대문자로 바꿔주고 아니라면 소문자로 둔다.
6. 모든 문자를 탐색한다.
7. 결과를 출력한다.
[접근]
1. 모든 문자를 소문자로 만들어주고 각 문자를 split으로 잘라서 배열에 담아주면 되겠다고 생각하였다.
2. 배열에 들어있는 문자들을 체크하면서 공백이 이전에 왔었다면 대문자로 바꿔주면 되겠다고 생각하였다.
[실수]
1. 공백이 여러 개 올 경우 반환하는 값도 여러 개가 되어야 하지만 split(" ")으로 공백 단위로 자르게 되면 결과에 공백 여러 개를 넣어주지 못하게 되어 틀린 답이 나온다.
[코드]
class Solution {
public String solution(String s) {
String answer = "";
// 각 단어의 첫글자만 제외하고는 소문자이므로
// 전체를 소문자로 먼저 만들어준다.
// 문자열 공백을 기준으로 잘라서 넣기
String[] str = s.toLowerCase().split("");
// 이전이 공백인지 체크
boolean space = true;
for(String ss : str) {
// space가 true면 대문자로, 아니면 그냥 그대로 사용
answer += space ? ss.toUpperCase() : ss;
// 공백이 오면 space를 true 아니면 false
space = ss.equals(" ") ? true : false;
}
return answer;
}
}
'문제 풀이 > Programmers' 카테고리의 다른 글
[프로그래머스] 나머지가 1이 되는 수 찾기 (JAVA) (0) | 2022.04.30 |
---|---|
[프로그래머스] 전화번호 목록 (JAVA) (0) | 2022.04.29 |
[프로그래머스] 게임 맵 최단거리 (JAVA) (0) | 2022.04.26 |
[프로그래머스] 피보나치 수 (JAVA) (0) | 2022.04.25 |
[프로그래머스] 최솟값 만들기 (0) | 2022.04.24 |