본문 바로가기
Programming Solve/BOJ

BOJ 14405 - 피카츄 / C++

by msm1029 2022. 4. 9.
반응형

문제 링크 : https://www.acmicpc.net/problem/14405

 

14405번: 피카츄

피카츄는 "pi", "ka", "chu"를 발음할 수 있다. 따라서, 피카츄는 이 세 음절을 합친 단어만 발음할 수 있다. 예를 들면, "pikapi"와 "pikachu"가 있다. 문자열 S가 주어졌을 때, 피카츄가 발음할 수 있는 문

www.acmicpc.net

 

 

풀이

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