문제 풀이: https://www.acmicpc.net/problem/2671
정규식을 쓰면 됩니다. 친절하게도 문제에 정규식을 제시해줍니다. ~를 +로 바꾸기만 하면 정규식 완성입니다.
정규식 매칭할때는 full match하는 점을 유의해주세요
정규식을 쓰지 않고 풀려면 직접 DFA를 만들어서 풀어야 합니다.
#pragma GCC optimize ("Ofast")
#define _CRT_SECURE_NO_WARNINGS
#define _SILENCE_CXX17_C_HEADER_DEPRECATION_WARNING
#include <bits/stdc++.h>
using namespace std;
int main()
{
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
#endif
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
std::regex submarine("(100+1+|01)+");
string s;
cin >> s;
cout << (regex_match(s, submarine) ? "SUBMARINE\n" : "NOISE\n");
return 0;
}
반응형
'Online Judge > 백준' 카테고리의 다른 글
[백준][C++] 10814: 나이순 정렬 (0) | 2020.07.06 |
---|---|
[백준][C++] 3107: IPv6 (0) | 2020.07.06 |
[백준][C++] 2866: 문자열 잘라내기 (0) | 2020.07.04 |
[백준][C++] 1089: 엘리베이터 (0) | 2020.07.03 |
[백준][C++] 4836: 춤 (0) | 2020.07.02 |