
class Solution {
public String solution(String s) {
String answer = calc(s);
return answer;
}
static String calc(String s) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (c == ' ') {
sb.append(" ");
}
if (s.indexOf(c) % 2 == 0 || s.indexOf(c) == 0) {
// c를 대문자로
char character = Character.toUpperCase(c);
sb.append(character);
}
if (s.indexOf(c) % 2 != 0) {
// c를 소문자로
char character = Character.toLowerCase(c);
sb.append(character);
}
}
return sb.toString();
}
}
class Solution {
public String solution(String s) {
return calc(s);
}
static String calc(String s) {
StringBuilder sb = new StringBuilder();
int wordIndex = 0; // 단어 내에서의 인덱스를 관리하기 위한 변수
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (c == ' ') {
sb.append(c);
wordIndex = 0; // 공백을 만나면 단어 인덱스를 0으로 초기화
} else {
if (wordIndex % 2 == 0) {
// 단어 내에서의 인덱스가 짝수이면 대문자로 변환
sb.append(Character.toUpperCase(c));
} else {
// 단어 내에서의 인덱스가 홀수이면 소문자로 변환
sb.append(Character.toLowerCase(c));
}
wordIndex++; // 단어 내 인덱스 증가
}
}
return sb.toString();
}
}
문제점을 해결하려면 각 공백을 만날 때마다 인덱스를 0으로 초기화하면 된다.
근데 헷갈리면 안되는게 공백은 index를 0으로 설정할 뿐, index를 ++하지 않는다. 그래서 공백은 인덱스가 없다.
