· 문제 설명
JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요.
· 제한 조건
s는 길이 1 이상인 문자열입니다.
s는 알파벳과 공백문자(" ")로 이루어져 있습니다.
첫 문자가 영문이 아닐때에는 이어지는 영문은 소문자로 씁니다. ( 첫번째 입출력 예 참고 )
· 입출력 예
s | return |
3people unFollowed me | 3people Unfollowed Me |
for the last week | For The Last Week |
· Thinking 1
split 함수 사용해서 공백 기준으로 나누기
class Solution {
public String solution(String s) {
String answer = "";
String[] words = s.split(" ");
for (int i = 0; i < words.length; i++) {
for (int j = 0; j < words[i].length(); j++) {
if (j == 0) {
answer += Character.toString(words[i].charAt(j)).toUpperCase();
} else {
answer += Character.toString(words[i].charAt(j)).toLowerCase();
}
}
if (i != words.length-1) {
answer += " ";
}
}
return answer;
}
}
정확성 : 93.8 / 8 실패
- 질문하기 참고 :
8번은 마지막에 공백이 들어있는 것을 확인하는 것 같습니다. 저도 같은 문제가 있었는데 코드 다 실행하고 마지막에 공백이 존재하는지 확인하고 추가를 해주니 통과했네요
마지막에 공백이 있으면 추가하라는 말인가..?
· 완성 코드
class Solution {
public String solution(String s) {
String answer = "";
String[] words = s.split(" ");
for (int i = 0; i < words.length; i++) {
for (int j = 0; j < words[i].length(); j++) {
if (j == 0) {
answer += Character.toString(words[i].charAt(j)).toUpperCase();
// Character.toUpperCase(words[i].charAt(j));
} else {
answer += Character.toString(words[i].charAt(j)).toLowerCase();
}
}
if (i != words.length-1) {
answer += " ";
}
}
if (s.substring(s.length() - 1, s.length()).equals(" ")) {
answer += " ";
}
return answer;
}
}
· 문제 출처
https://programmers.co.kr/learn/courses/30/lessons/12951
'Algorithm > Programmers' 카테고리의 다른 글
구명보트 (0) | 2019.06.04 |
---|---|
N개의 최소공배수 (0) | 2019.06.04 |
H-Index (0) | 2019.06.04 |
124 나라의 숫자 (0) | 2019.06.04 |
행렬의 덧셈 (0) | 2019.05.31 |
댓글