작성일 :

문제 링크

30329번 - Kick

설명

문제의 목표는 주어진 문자열에서 "kick" 이라는 부분 문자열이 몇 번 등장하는지 세는 것입니다.

이 때, "kick" 부분 문자열들은 서로 겹칠 수 있다는 것에 주의해야 합니다.


풀이 과정은 다음과 같습니다.

  1. "kick" 문자열의 개수를 저장할 변수를 선언합니다.

  2. 입력으로 주어지는 문자열을 처음부터 끝까지 순회하며, 각 위치에서시작하는 4 글자가 "kick" 인지 확인합니다.

  3. "kick" 문자열을 찾을 때 마다 개수를 1 씩 증가시킵니다.

  4. 문자열의 모든 부분을 확인한 후, 센 "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;
}