728x90
반응형
문제
정답 풀이
첫 시도(정답률 44%)
- 공백을 기준으로 입력받은 문자열을 잘라 배열에 저장
- substring을 활용하여 첫 문자는 대문자로 변경하여 answer에 저장
- 그 이후 문자들은 소문자로 변경하여 answer에 저장
- 공백 더해주기
- 문자열 마지막까지 공백이 생기므로 값을 반환해줄 때 substring을 활용하여 마지막 문자는 삭제해주기
class Solution {
public String solution(String s) {
String answer = "";
String[] arr = s.split(" ");
for(int i = 0; i < arr.length; i++){
answer += arr[i].substring(0, 1).toUpperCase();
answer += arr[i].substring(1).toLowerCase();
answer += " ";
}
return answer = answer.substring(0, answer.length()-1);
}
}
이렇게 한 후 코드 실행을 하면 44%가 나옵니다.
그 이유는 제한 조건을 보면 나오는데요
- 공백문자가 연속해서 나올 수 있습니다.
이것 때문에..엄청 헤맸어요ㅠㅠ 어디서 잘못했는지를 모르겠어서..
다음이 정답 코드입니다!!
class Solution {
public String solution(String s) {
String answer = "";
String[] arr = s.split(" ");
for(int i = 0; i < arr.length; i++){
// 추가한 if문
if(arr[i].length() == 0){
answer += " ";
}
else{
answer += arr[i].substring(0, 1).toUpperCase();
answer += arr[i].substring(1).toLowerCase();
answer += " ";
}
}
// 추가한 if문
if(s.substring(s.length()-1, s.length()).equals(" "))
return answer;
return answer = answer.substring(0, answer.length()-1);
}
}
전반적인 흐름은 44%코드와 같습니다만
- 만약 문자열의 길이가 0 즉 공백이라면 answer에 " "을 추가해줍니다.
- 만약 입력 받은 문자열의 맨 마지막이 " "이라면 바로 answer을 반환합니다.
728x90
반응형
'Computer Science (CS) > 알고리즘' 카테고리의 다른 글
[프로그래머스/Java] 올바른 괄호 (0) | 2023.04.28 |
---|---|
[프로그래머스/Java] 최솟값 만들기 (0) | 2023.04.28 |
[백준/Java] 10809번 알파벳 찾기 (0) | 2023.04.16 |
[백준/Java] 11720번 숫자의 합 (0) | 2023.04.16 |
[백준/Java] 11654번 아스키 코드 (0) | 2023.04.16 |