
이 문제를 풀기 위해 접근 방식을 다섯 단계로 나눴다
import java.util.Arrays;
class Solution {
public String solution(String s) {
String[] str = s.split(" ");
StringBuilder transformedStr = new StringBuilder();
for (String word : str) {
StringBuilder transformWord = new StringBuilder();
for (int i = 0; i < word.length(); i++) {
char ch = word.charAt(i);
if (i % 2 == 0) ch = Character.toUpperCase(ch);
else ch = Character.toLowerCase(ch);
transformWord.append(ch);
}
transformedStr.append(transformWord).append(" ");
}
return transformedStr.toString().trim();
}
public static void main(String[] args) {
Solution sol = new Solution();
System.out.println(sol.solution("try hello world"));
}
}
코드를 완성한 후 채점을하니 절반 가까운 테스트 코드에서 실패를 했다.

문제를 다시 읽어보고 오랜 시간 고민 후 여러가지 수정을 해보았다. 공백을 기준으로 문자열을 분리하는 것이 아닌 공백을 만났을때 인덱스를 카운팅하는 변수를 초기화하고 공백을 추가해주는 방식으로 바꾸었다.
public String solution(String s) {
StringBuilder transformedStr = new StringBuilder();
int idx = 0;
for (int i = 0; i < s.length(); i++) {
char ch = s.charAt(i);
if (ch == ' ') {
transformedStr.append(ch);
idx = 0;
continue;
}
if (idx % 2 == 0) ch = Character.toUpperCase(ch);
else ch = Character.toLowerCase(ch);
transformedStr.append(ch);
idx++;
}
return transformedStr.toString();
}

통과!