프로그래머스 알고리즘 Level 1 코틀린 문자열 나누기
2023. 1. 23. 15:03ㆍ알고리즘/문제
https://school.programmers.co.kr/learn/courses/30/lessons/140108
풀이
class Solution {
fun solution(s: String): Int {
var answer: Int = 0
var str = s
while (str.isNotEmpty()) {
var sCnt = 1
var oCnt = 0
for (i in 1 until str.length) {
if (str.elementAt(0) == str.elementAt(i)) sCnt++ else oCnt++
if (sCnt == oCnt) break
}
str = str.substring(sCnt + oCnt)
answer++
}
return answer
}
}
함수형으로 풀 수 없나 고민을 했지만 하지 못했다.
반복문을 이용해 문자열을 잘라가면서 반복했다.
"banana" 이면 b a 를 count 하고 컷
nana 는 n a count 하고 컷
다음도 동일
"abracadabra" 는 a b a 기준으로 1 b 1 같으니까 컷
"racadabra" 는 r a r 1개 a 1개 같으니까 컷
핵심은 2중 for문에 반복하는 문자열의 시작 elementAt(0)과 elementAt(i)의 비교
그리고 문자열 자르기
이 정도가 키포인트 아닐까 생각한다.
끝.
'알고리즘 > 문제' 카테고리의 다른 글
프로그래머스 알고리즘 Level 1 햄버거 만들기 (0) | 2023.01.24 |
---|---|
프로그래머스 Level 1 코틀린 2022 KAKAO BLIND RECRUITMENT 신고 결과 받기 (0) | 2023.01.24 |
프로그래머스 알고리즘 Level 1 과일 장수 (0) | 2023.01.23 |
프로그래머스 알고리즘 Level 1 코틀린 기사단원의 무기 (0) | 2023.01.22 |
프로그래머스 알고리즘 Level1 코틀린 명예의 전당 (0) | 2023.01.22 |