반응형
문제 링크 : https://www.acmicpc.net/problem/14405
풀이
pi, ka, chu와 일치하는 문자열이 있다면 임시 int 변수에 더해준다.
모두 더했을 때 처음 문자열의 크기와 같다면 "YES"를 출력해주고 아니라면 "NO"를 출력한다.
코드
#include <iostream>
#include <string>
#include <regex>
using namespace std;
int main(){
string str;
int sizeOfStr = 0;
cin >> str;
regex re1("pi");
regex re2("ka");
regex re3("chu");
smatch match;
string tmp = str;
while(regex_search(tmp, match, re1)){
sizeOfStr += 2;
tmp = match.suffix();
}
tmp = str;
while(regex_search(tmp, match, re2)){
sizeOfStr += 2;
tmp = match.suffix();
}
tmp = str;
while(regex_search(tmp, match, re3)){
sizeOfStr += 3;
tmp = match.suffix();
}
sizeOfStr == str.size() ? cout << "YES" : cout << "NO";
}
반응형
'Programming Solve > BOJ' 카테고리의 다른 글
BOJ 5637 - 가장 긴 단어 / C++ (0) | 2022.04.10 |
---|---|
BOJ 9342 - 염색체 / C++ (0) | 2022.04.10 |
BOJ 2929 - 머신 코드 / C++ (0) | 2022.04.09 |
BOJ 1546 - 평균 / Swift (0) | 2022.04.08 |
BOJ 1330 - 두 수 비교하기 / Swift (0) | 2022.04.08 |