🗒 문제
📝 나의 문제풀이
class Solution {
fun solution(myString: String, pat: String): Int {
var count = 0
var index = myString.indexOf(pat)
while(index != -1) {
count++
index = myString.indexOf(pat, index + 1)
}
return count
}
}
📝 다른 사람의 문제 풀이
다른 사람의 문제 풀이는 좋아요 수가 높은 기준으로 첨부하였습니다.
class Solution {
fun solution(myString: String, pat: String): Int {
return (0..myString.length - pat.length).map { myString.substring(it, it + pat.length) }.count { it == pat }
}
}
🖊 문제 풀이 시 알면 좋을 것
indexOf
- 문자열에서 특정 패턴이 처음 등장하는 인덱스 위치를 반환.
- 두 번째 매개변수를 사용해 탐색 시작 위치를 지정 가능.
- 반환값:
- 패턴이 발견되면 시작 인덱스를 반환.
- 패턴이 없으면 -1 반환.
val index = myString.indexOf(pat, startIndex)
val str = "banana"
println(str.indexOf("ana")) // 출력: 1
println(str.indexOf("ana", 2)) // 출력: 3
substring
- 문자열에서 특정 범위를 잘라낸 부분 문자열을 반환.
- startIndex는 포함, endIndex는 미포함.
val subStr = myString.substring(startIndex, endIndex)
val str = "banana"
println(str.substring(1, 4)) // 출력: "ana"
count
- 컬렉션에서 주어진 조건을 만족하는 요소의 개수를 반환.
- 문자열을 리스트나 시퀀스로 변환 후 사용 가능.
val count = collection.count { condition }
val str = listOf("a", "b", "a", "c")
println(str.count { it == "a" }) // 출력: 2
반응형
'코딩테스트' 카테고리의 다른 글
[프로그래머스] 공백으로 구분하기 2 (0) | 2025.01.21 |
---|---|
[프로그래머스] 공백으로 구분하기 1 (0) | 2025.01.21 |
[프로그래머스] 특정 문자열로 끝나는 가장 긴 부분 문자열 찾기 (0) | 2025.01.21 |
[프로그래머스] 특정한 문자를 대문자로 바꾸기 (0) | 2025.01.20 |
[프로그래머스] A 강조하기 (0) | 2025.01.20 |