목차
#1 문자열이 몇 번 등장하는지 세기
문제설명
문자열 myString과 pat이 주어집니다. myString에서 pat이 등장하는 횟수를 return 하는 solution 함수를 완성해 주세요.
제한사항
- 1 ≤ myString ≤ 1000
- 1 ≤ pat ≤ 10
입출력 예
myString | pat | result |
"banana" | "ana" | 2 |
"aaaa" | "aa" | 3 |
입출력 예 설명
입출력 예 #1
- "banana"에서 1 ~ 3번 인덱스에서 한 번, 3 ~ 5번 인덱스에서 또 한 번 "ana"가 등장해서 총 두 번 등장합니다. 따라서 2를 return 합니다.
입출력 예 #2
- "aaaa"에서 0 ~ 2번 인덱스에서 한 번, 1 ~ 3번 인덱스에서 한 번, 2 ~ 4번 인덱스에서 한 번 "aa"가 등장해서 총 세 번 등장합니다. 따라서 3을 return 합니다.
#2 알고리즘 및 코드
public class Main {
public static void main(String[] args) {
String myString = "banana";
String pat = "ana";
Solution sl = new Solution();
System.out.println(sl.solution(myString, pat));
}
}
class Solution {
public int solution(String myString, String pat) {
int count = 0;
for(int i = 0; i < myString.length() - pat.length() + 1; i++){
if(myString.substring(i, i + pat.length()).contains(pat)){
count++;
}
}
return count;
}
}
- for문을 사용해 밑에 코드처럼 순회한다.
i < myString.length() - pat.length() + 1;
- "banana"와 "ana"를 예로 들면 i < 4 총 4번 순회하게 되는 것이다.
--------
banana
ana
--------
banana
ana
--------
banana
ana
--------
banana
ana
----------
이런식으로 비교 myString에서 3개씩 추출하여 그 추출된 문자열이 pat을 포함하는지 검사하여 포함한다면
count를 증가하는 것이다.
728x90
'JAVA > 프로그래머스 코딩 기초 트레이닝' 카테고리의 다른 글
[프로그래머스, LV.0] 공백으로 구분하기 2 (1) | 2024.01.06 |
---|---|
[프로그래머스, LV.0] ad 제거하기 (0) | 2024.01.06 |
[프로그래머스, LV.0] 특정 문자열로 끝나는 가장 긴 부분 문자열 찾기 (1) | 2024.01.06 |
[프로그래머스, LV.0] A 강조하기 (0) | 2024.01.05 |
[프로그래머스, LV.0] 배열에서 문자열 대소문자 변환하기 (0) | 2024.01.05 |