문제 설명
문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.
제한 사항
문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다.
입출력 예
s | return |
---|---|
try hello world | TrY HeLlO WoRlD |
입출력 예 설명
try hello world는 세 단어 try, hello, world로 구성되어 있습니다. 각 단어의 짝수번째 문자를 대문자로, 홀수번째 문자를 소문자로 바꾸면 TrY, HeLlO, WoRlD입니다. 따라서 TrY HeLlO WoRlD 를 리턴합니다.
public class StrangeString {
public String solution(String str) {
String answer = "";
int count = 0;
int length = str.length();
String[] arr = str.split("");
answer = countSpace(answer, count, length, arr);
return answer;
}
private String countSpace(String answer, int count, int length, String[] arr) {
boolean judge = false;
for (int i = 0; i < length; i++) {
if (arr[i].equals(" ")) {
judge = false;
count = 0;
} else {
judge = true;
count++;
if (count % 2 != 0) {
arr[i] = arr[i].toUpperCase();
} else {
arr[i] = arr[i].toLowerCase();
}
}
answer = answer + arr[i];
}
return answer;
}
/* public static void main(String[] args) {
StrangeString s = new StrangeString();
String str = " try hello world";
System.out.println(s.solution(str));
}*/
}
후기
문제를 처음에 윗 부분만 읽고 간단하게 Uppercase를 사용했지만 당연히 실패 ㅎㅎ공백을기준으로, 라는 말이 있었다.근데 공백의 인덱스까지 카운트를 해야하는지? 아니면 공백은 몇개가 나오든 제외시키는건지?이 부분이 모호했다.
그래서 이 부분에 대해서는 동일 문제를 검색해서 파악을 한 후, 작성했다.공백이 나왔을 때의 경우를 세부적으로 나눠서 풀었는데 처음 count만으로 작성하기에는 한계가 있었다.그래서 boolean 함수를 추가해줬다.공백을 어떻게 처리할지가 내 입장에서는 제일 까다로웠다.
다음에 한번 더 풀어야할듯
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[programmers level2] 이상한 나라의 숫자_TDD (0) | 2019.03.02 |
---|---|
[programmers level2] 다음 가장 큰 수 (java) -TDD를 사용한 풀이 (0) | 2019.02.10 |
[백준+프로그래머스] 1978번 소수 찾기 + 프로그래머스 소수 찾기 (0) | 2018.12.10 |
[프로그래머스] 문자열 다루기 기본 (level 1) (0) | 2018.12.07 |
[프로그래머스] K번째 수 (level 1) (0) | 2018.12.07 |
댓글