fun solution(s: String): String {
val sStringBuilder = StringBuilder(s)
if(s[0].code in 97..122)
sStringBuilder[0] = Character.toUpperCase(s[0])
var beforeChar = s[0]
for(sIndex in 1.. s.length-1) {
val currentChar = s[sIndex]
if(beforeChar == ' ' && currentChar.code in 97..122)
sStringBuilder[sIndex] = Character.toUpperCase(currentChar)
if(beforeChar != ' ' && currentChar.code in 65..90)
sStringBuilder[sIndex] = Character.toLowerCase(currentChar)
beforeChar = currentChar
}
return sStringBuilder.toString()
}
풀이 과정
1. s[0]은 이전 글자가 없기 때문에 따로 확인한다
2. s[1]부터 한 글자씩 마지막 인덱스까지 확인한다.
2.1. 이전 문자가 공백인데(현재 문자가 시작인데) 소문자인 경우 -> 대문자로 변경
2.2. 이전 문자가 공백이 아닌데(현자 문제가 시작문자가 아닌데) 대문자인 경우 -> 소문자로 변경
3. 현재 문자를 이전 문자로 초기화
'TLI > 코드카타' 카테고리의 다른 글
2024.06.11 TIL 코트카타 79번(카펫) (0) | 2024.06.11 |
---|---|
2024.06.10 TIL 코트카타 78번(피보나치수) (0) | 2024.06.10 |
2024.06.07 TIL 코트카타 75번(최댓값과 최솟값) (0) | 2024.06.07 |
2024.06.06 TIL 코트카타 74번(신고 결과 받기) (0) | 2024.06.06 |
2024.06.05 TIL 코트카타 73번(공원 산책) (0) | 2024.06.05 |