[백준 30329] Kick (C#, C++) - soo:bak
작성일 :
문제 링크
설명
문제의 목표는 주어진 문자열에서 "kick"
이라는 부분 문자열이 몇 번 등장하는지 세는 것입니다.
이 때, "kick"
부분 문자열들은 서로 겹칠 수 있다는 것에 주의해야 합니다.
풀이 과정은 다음과 같습니다.
"kick"
문자열의 개수를 저장할 변수를 선언합니다.
- 입력으로 주어지는 문자열을 처음부터 끝까지 순회하며, 각 위치에서시작하는
4
글자가"kick"
인지 확인합니다.
"kick"
문자열을 찾을 때 마다 개수를1
씩 증가시킵니다.
- 문자열의 모든 부분을 확인한 후, 센
"kick"
의 수를 출력합니다.
Code
[ C# ]
1
2
3
4
5
6
7
8
9
10
11
namespace Solution {
class Program {
static void Main(string[] args) {
var s = Console.ReadLine()!;
Console.WriteLine(Enumerable.Range(0, s.Length - 3)
.Count(i => s.Substring(i, 4) == "kick"));
}
}
}
[ C++ ]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
string s; cin >> s;
int count = 0;
for (size_t i = 0; i + 3 < s.length(); i++) {
if (s.substr(i, 4) == "kick")
count++;
}
cout << count << "\n";
return 0;
}