작성일 :

문제 링크

31636번 - 三連続 (Three Consecutive)

설명

문자열 S에서 o가 3번 연속 등장하는 구간이 있는지 판별하는 문제입니다.


접근법

문자열을 순회하며 연속된 o의 개수를 세고, 3에 도달하면 Yes를 출력합니다. 끝까지 도달하지 못하면 No를 출력합니다.


Code

C#

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
using System;

class Program {
  static void Main() {
    var n = int.Parse(Console.ReadLine()!);
    var s = Console.ReadLine()!;

    var cnt = 0;
    for (var i = 0; i < n; i++) {
      if (s[i] == 'o') cnt++;
      else cnt = 0;
      if (cnt == 3) {
        Console.WriteLine("Yes");
        return;
      }
    }

    Console.WriteLine("No");
  }
}

C++

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <bits/stdc++.h>
using namespace std;

int main() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);

  int n; cin >> n;
  string s; cin >> s;

  int cnt = 0;
  for (int i = 0; i < n; i++) {
    if (s[i] == 'o') cnt++;
    else cnt = 0;
    if (cnt == 3) {
      cout << "Yes\n";
      return 0;
    }
  }

  cout << "No\n";

  return 0;
}