문제 설명
JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 단, 첫 문자가 알파벳이 아닐 때에는 이어지는 알파벳은 소문자로 쓰면 됩니다. (첫 번째 입출력 예 참고)
문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요.
- s는 길이 1 이상 200 이하인 문자열입니다.
- s는 알파벳과 숫자, 공백문자(" ")로 이루어져 있습니다.
- 숫자는 단어의 첫 문자로만 나옵니다.
- 숫자로만 이루어진 단어는 없습니다.
- 공백문자가 연속해서 나올 수 있습니다.
"3people unFollowed me" | "3people Unfollowed Me" |
"for the last week" | "For The Last Week" |
class Solution {
public String solution(String s) {
s = s.toLowerCase();
StringTokenizer st = new StringTokenizer(s, " ", true);
StringBuilder sb = new StringBuilder();
while(st.hasMoreTokens())
{
String word = st.nextToken();
if(word.equals(" "))
{
sb.append(word);
}
else{
sb.append(word.substring(0,1).toUpperCase() + word.substring(1));
}
}
return sb.toString();
}
}
class Solution {
public String solution(String s) {
String answer = "";
String[] sp = s.toLowerCase().split("");
boolean flag = true;
for(String ss : sp) {
answer += flag ? ss.toUpperCase() : ss;
flag = ss.equals(" ") ? true : false;
}
return answer;
}
}
테스트 1 〉 | 통과 (2.12ms, 78.8MB) |
테스트 2 〉 | 통과 (2.12ms, 72.8MB) |
테스트 3 〉 | 통과 (1.59ms, 75.3MB) |
테스트 4 〉 | 통과 (3.91ms, 78.7MB) |
테스트 5 〉 | 통과 (2.26ms, 71.5MB) |
테스트 6 〉 | 통과 (1.77ms, 74.8MB) |
테스트 7 〉 | 통과 (2.07ms, 83.6MB) |
테스트 8 〉 | 통과 (1.35ms, 74.2MB) |
테스트 9 〉 | 통과 (1.89ms, 76MB) |
테스트 10 〉 | 통과 (2.31ms, 70.7MB) |
테스트 11 〉 | 통과 (2.13ms, 72.8MB) |
테스트 12 〉 | 통과 (3.97ms, 76.5MB) |
테스트 13 〉 | 통과 (1.78ms, 72MB) |
테스트 14 〉 | 통과 (2.27ms, 74.8MB) |
테스트 15 〉 | 통과 (2.58ms, 78.5MB) |
테스트 16 〉 | 통과 (1.99ms, 80MB) |
코드는 더 간결하지만, 시간으로 보아 더 오래걸리는 것으로 보인다.
확실히 Tonizer 방식이 속도 측면에서 빠른건가? 다음시간에 알아보자.
'알고리즘' 카테고리의 다른 글
[백준 1952번] 달팽이2 (0) | 2023.04.30 |
---|---|
높이가 n인 별(*) 문자열 출력 (기본에 충실) (0) | 2023.04.13 |
프로그래머스 - 가장 큰 정사각형 찾기(for JAVA) (0) | 2023.03.05 |
프로그래머스 - 피자 나눠 먹기 (1) (0) | 2023.02.08 |
알고리즘 회고록 1) 직사각형 좌표 구하기(카카오) (0) | 2021.08.22 |