-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
73 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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; | ||
} | ||
``` |