문제를 자세히 보면 제한 사항에 "문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다."
라고 친절하게 나와있었다.. 이말은 즉, 공백을 기준으로 인덱스가 다시 0부터 시작한다는 의미!
역시 문제를 잘 읽어봐야..
나의 풀이
func solution(_ s:String) -> String {
var i = 0
var result = ""
for c in s {
if String(c) == " " {
result += String(c)
i = 0
} else {
result += i % 2 == 0 ? String(c).uppercased() : String(c).lowercased()
i += 1
}
}
return result
}
- 문자열 s를 반복문을 돌려 각 요소가 공백인지 구분
- 공백일 경우 결과값에 공백 추가 및 문제 제한 사항과 같이 공백을 기준으로 인덱스가 다시 0부터 시작해야하므로 i = 0 초기화
- 공백이 아닐 경우 인덱스 i를 짝/홀수 경우에 따라 대/소문자 처리 후 결과값에 추가, i += 1 인덱스 증가