개삽질을 왜 했냐고요?
문자열 끝에 공백이 있을 경우 그 공백들까지 그대로 return을 해줘야합니다.
이걸 몰라서 진짜 왜 테스트케이스 전부 통과가 안되는지 담배 세 대 피면서 생각했다.
소스만 대충 올립니다.
그래도 주석은 야무지게 달아놓음.
확실히 연습문제용들이 그렇게 힘들이지 않게 알고리즘 초급부터 공부할 수 있어서 좋다.

public static String solution(String s) {
String answer = "";
//문자열 끝 마지막 문자
String lastChar = Character.toString(s.charAt(s.length()-1));
int blankCnt = 0; //문자열 끝 공백 체크용
boolean flag = false;
if(lastChar.equals(" ")) { //마지막 문자열이 공백일 경우
flag = true;
for(int i=s.length()-1; i>=0; i--) { //문자열 끝에서부터 공백이 몇개인지 체크
String c = Character.toString(s.charAt(i));
if(c.equals(" ")) {
blankCnt++;
}else {
break; //공백이 아닌 문자를 만났을 때 반복문 탈출
}
}
}
String[] str = s.split(" "); //공백 기준으로 문자열 분리
int cnt = 0;
for(String ss : str) {
String word = "";
String[] strTmp = ss.split("");
for(int i=0; i<strTmp.length; i++) {
String tmp = strTmp[i];
if((i+1)%2 == 1) { //짝수일 경우 대문자 변환
strTmp[i] = tmp.toUpperCase();
}else { //홀수일 경우 대문자 변환
strTmp[i] = tmp.toLowerCase();
}
}
for(String sss : strTmp) {
word += sss;
}
str[cnt] = word; //기존 배열에 대소문자 변환한 문자열 치환
cnt++;
}
for(int i=0; i<str.length; i++) { //answer변수에 값 넣기
if(i == str.length-1) { //마지막 문자열일 경우, 공백 없이 마무리
answer += str[i];
}else {
answer += str[i] + " ";
}
}
if(flag == true) { //문자열 끝에 공백이 있을 경우, 공백 숫자만큼 answer 끝에 공백 추가
for(int i=0; i<blankCnt; i++) {
answer += " ";
}
}
return answer;
}
'지루한 일상' 카테고리의 다른 글
[프로그래머스] 코딩테스트 통과 못하면 팀장님한테 죽을 수도 있는 사람의 'K번째 수' 풀이(java, 자바) (0) | 2021.09.11 |
---|---|
[일상] 진짜 딱 열장만 올림 물론 밥사진만(징징거림x, 안부인사x) (0) | 2021.08.24 |
[짧은인사] 오랜만에 인사드립니다. (1) | 2021.01.14 |
지치고 병든 상태로 떠났던 강릉 여행 Review(스압) (1) | 2020.05.13 |
친구의 자살을 알리며 (2) | 2019.11.01 |