Notice
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- ar vr 차이
- rxjava disposable
- 클래스
- 안드로이드 레트로핏 crud
- 큐 자바 코드
- 서비스 쓰레드 차이
- 안드로이드 유닛 테스트
- Rxjava Observable
- 안드로이드 라이선스 종류
- 2022 플러터 안드로이드 스튜디오
- rxjava hot observable
- 플러터 설치 2022
- 안드로이드 os 구조
- jvm 작동 원리
- 객체
- 안드로이드 유닛 테스트 예시
- jvm이란
- 스택 자바 코드
- 스택 큐 차이
- 서비스 vs 쓰레드
- 안드로이드 유닛테스트란
- 자바 다형성
- 멤버변수
- android retrofit login
- android ar 개발
- 2022 플러터 설치
- 안드로이드 레트로핏 사용법
- ANR이란
- rxjava cold observable
- 안드로이드 라이선스
Archives
- Today
- Total
나만을 위한 블로그
[Algorithm] 프로그래머스 - 문자열이 몇 번 등장하는지 세기 (Kotlin) 본문
728x90
반응형
문자열 myString, pat이 주어진다. myString에서 pat이 등장하는 횟수를 리턴하는 함수를 완성하라
풀지 못해서 다른 사람들의 풀이를 참고했다.
class Solution {
fun solution(myString: String, pat: String): Int {
var count = 0
var index = 0
while (index != -1) {
index = myString.indexOf(pat, index)
if (index != -1) {
count++
index += 1
}
}
return count
}
}
indexOf()로 pat이 어느 인덱스에서 발견됐는지 찾고, 그 인덱스 이후의 문자열을 대상으로 해서 indexOf를 재호출한다.
발견될 때마다 index 변수에 1을 더하고, 더 이상 pat이 보이지 않으면 그 때 count를 리턴한다.
banana, ana 문자열의 경우 ana는 1번 인덱스에서 나타난다. 이후 count에 1을 더해서 count는 1이 된다.
이 때 아직 while이 종료되지 않아서 다시 indexOf가 호출된다. 그리고 3번 인덱스에서 다시 ana를 발견한다. 마찬가지로 count에 1을 더하고, count는 2가 된다.
이후 ana는 더 이상 등장하지 않기 때문에 indexOf는 ana를 찾지 못해 -1을 리턴하고 while을 탈출하게 된다. 이후 2를 리턴하면서 함수가 종료된다.
반응형
'알고리즘 문제 풀이 > 프로그래머스' 카테고리의 다른 글
[Algorithm] 프로그래머스 - 공백으로 구분하기 1 (Kotlin) (0) | 2024.05.31 |
---|---|
[Algorithm] 프로그래머스 - ad 제거하기 (Kotlin) (0) | 2024.05.31 |
[Algorithm] 프로그래머스 - 특정 문자열로 끝나는 가장 긴 부분 문자열 찾기 (Kotlin) (0) | 2024.05.31 |
[Algorithm] 프로그래머스 - 특정한 문자를 대문자로 바꾸기 (Kotlin) (0) | 2024.05.24 |
[Algorithm] 프로그래머스 - A 강조하기 (Kotlin) (0) | 2024.05.24 |
Comments