ALGORITHM/PROGRAMMERS
[프로그래머스] JadenCase 문자열 만들기
0298
2021. 7. 21. 22:11
https://programmers.co.kr/learn/courses/30/lessons/12951
코딩테스트 연습 - JadenCase 문자열 만들기
JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요. 제한 조건
programmers.co.kr
2021-07-21
1. String
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
public static String solution(String s) {
String answer = "";
if(s.length() == 0) return "";
String[] arr = s.toLowerCase().split(" ");
for(int i = 0; i < arr.length; i++) {
if(arr[i].length() > 0) {
answer += arr[i].replaceFirst(String.valueOf(arr[i].charAt(0)), String.valueOf(arr[i].charAt(0)).toUpperCase());
answer += (i == arr.length-1 && s.charAt(s.length()-1) != ' ') ? "" : " ";
} else answer += " ";
}
return answer;
}
|
cs |

2. StringBuilder
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
public static String solution(String s) {
StringBuilder answer = new StringBuilder();
if(s.length() == 0) return "";
String[] arr = s.toLowerCase().split(" ");
for(int i = 0; i < arr.length; i++) {
if(arr[i].length() > 0) {
answer.append(arr[i].replaceFirst(String.valueOf(arr[i].charAt(0)), String.valueOf(arr[i].charAt(0)).toUpperCase()));
answer.append((i == arr.length - 1 && s.charAt(s.length() - 1) != ' ') ? "" : " ");
} else answer.append(" ");
}
return answer.toString();
}
|
cs |

#문제풀이
String과 StringBuilder 두 방법으로 돌려봤다.
0. 만약 들어온 값의 length가 0이면 그냥 빈 값을 return 한다.
1. 문자를 모두 LowerCase로 바꾼 후, " " 공백을 기준으로 split하여 String 배열에 넣는다.
2. String arr를 돌면서, 값이 0보다 큰 경우와 0인 경우로 나눠서 생각한다.
2-1. 값이 0보다 큰 경우, 맨 앞에 문자를 upperCase로 바꾸고, 나머지는 그대로 사용한다. 그리고 맨 마지막 문자가 아닌 경우 뒤에 " " " 공백 문자를 붙여준다.
2-2. 값이 0인 경우, 공백이라는 의미 이므로 그냥 " " 공백 문자를 추가해준다.
만약, 답이 제대로 안 나오면
테스트로 "aaaa aa a aaa a a a "를 돌려서 "Aaaa Aa A Aaa A A A " 이렇게 나오는지 체크 해보면 틀린점을 발견할 수도 있다.