Skip to content

Commit

Permalink
📝 BOJ solution is posted.
Browse files Browse the repository at this point in the history
  • Loading branch information
soo-bak committed Feb 27, 2024
1 parent a724b51 commit df4c09b
Showing 1 changed file with 73 additions and 0 deletions.
73 changes: 73 additions & 0 deletions algorithm/boj/_posts/2024-02-27-[kick-66.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
---
layout: single
title: "[백준 30329] Kick (C#, C++) - soo:bak"
date: "2024-02-27 22:57:00 +0900"
description: 문자열, 구현, 시뮬레이션 등을 주제로 하는 백준 30329번 문제를 C++ C# 으로 풀이 및 해설
---

## 문제 링크
[30329번 - Kick](https://www.acmicpc.net/problem/30329)

## 설명
문제의 목표는 주어진 문자열에서 `"kick"` 이라는 부분 문자열이 몇 번 등장하는지 세는 것입니다.<br>
<br>
이 때, `"kick"` 부분 문자열들은 서로 겹칠 수 있다는 것에 주의해야 합니다.<br>
<br>
<br>
풀이 과정은 다음과 같습니다.<br>
<br>
1. `"kick"` 문자열의 개수를 저장할 변수를 선언합니다.<br>
<br>
2. 입력으로 주어지는 문자열을 처음부터 끝까지 순회하며, 각 위치에서시작하는 `4` 글자가 `"kick"` 인지 확인합니다.<br>
<br>
3. `"kick"` 문자열을 찾을 때 마다 개수를 `1` 씩 증가시킵니다.<br>
<br>
4. 문자열의 모든 부분을 확인한 후, 센 `"kick"` 의 수를 출력합니다.<br>
<br>
<br>

- - -

## Code
<b>[ C# ] </b>
<br>

```c#
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"));
}
}
}
```
<br><br>
<b>[ C++ ] </b>
<br>

```c++
#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;
}
```

0 comments on commit df4c09b

Please sign in to comment.