fun solution(s: String): Int {
var answer: Int = 0
var startChar = s[0]
var numStartChar = 1
var numUnStartChar = 0
for(sIndex in 1..s.length-1) {
if(numStartChar == 0) {
startChar = s[sIndex]
numStartChar = 1
continue
}
if(startChar == s[sIndex])
numStartChar++
else
numUnStartChar++
if(numStartChar == numUnStartChar) {
answer++
numStartChar = 0
numUnStartChar = 0
}
}
if(numStartChar != numUnStartChar)
answer++
return answer
}
포인트
- 기준이 되는 문자, 그 외의 문자의 개수를 count한다.
- 같아지는 지점에서 answer를 +1하고 다음 인덱스의 문자를 기준으로 삼는다.
- s의 마지막 인덱스에서 answer가 추가 됐는지 확인해서 추가되지 않았으면 answer에 +1해준다.
- 마지막 문자열이 규칙에 맞지 않아도 나눠야 하기 때문
- 규칙에 맞게 나눠졌다면 딱 떨어진 것이기 때문에 answer의 값을 추가하면 안된다.
'TLI > 코드카타' 카테고리의 다른 글
2024.05.30 TIL 코트카타 67번(둘만의 암호) (0) | 2024.05.30 |
---|---|
2024.05.29 TIL 코트카타 66번(대충만든자판) (0) | 2024.05.29 |
2024.05.28 TIL 코트카타 62번(옹알이(2)) (0) | 2024.05.28 |
2024.05.27 내일배움캠프 Android 4기를 시작하며 (0) | 2024.05.27 |
2024.05.24 TIL 코트카타 61번(로또의 최고 순위와 최저 순위) (0) | 2024.05.24 |