하루하루 꾸준히, 인생은 되는대로

알고리즘

백준 14405 피카츄 C++

긤효중 2022. 5. 30. 12:27

https://www.acmicpc.net/problem/14405

 

14405번: 피카츄

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

www.acmicpc.net

문제

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

문자열 S가 주어졌을 때, 피카츄가 발음할 수 있는 문자열인지 아닌지 구하는 프로그램을 작성하시오.


입력

첫째 줄에 문자열 S가 주어진다. 문자열은 알파벳 소문자로 이루어진 문자열이며, 길이는 5000을 넘지 않는다.


출력

문자열 S가 "pi", "ka", "chu"를 이어 붙여서 만들 수 있으면 "YES"를 아니면 "NO"를 출력한다.

#include <iostream>
#include <string>
using namespace std;
int main(void){
    string str;
    cin >> str;
    bool is_not_valid = false; 
 
    for(int i = 0;i<str.size();i++){
        if(str[i] == 'p'){
            if(str[i+1] == 'i'){
                i = i + 1;
                continue;
            }
            else if(str[i+1] != 'p'){
                cout << "NO";
                return 0;
            }
        }
        else if(str[i] == 'k'){
            if(str[i+1] == 'a'){
                i = i + 1;
                continue;
            }
            else if(str[i+1] != 'k'){
                cout << "NO";
                return 0;
            }
        }
        else if(str[i] == 'c'){
            if(str[i+1] == 'h' && str[i+2] == 'u'){
                i = i + 2;
                continue;
            }
            else{
                cout << "NO";
                return 0;
            }
        }
        else if(str[i] != 'k' || str[i] !='c' || str[i] != 'p'){
            cout << "NO";
            return 0;
        }
    }
    cout << "YES";
    return 0;
}

'알고리즘' 카테고리의 다른 글

백준 18429 근손실 C++  (0) 2022.06.04
cin getline과 cin.ignore(), cin.fail(), cin.clear()  (0) 2022.06.04
백준 1343 폴리오미노 C++  (0) 2022.05.29
백준 2502 떡 먹는 호랑이 C++  (0) 2022.05.25
백준 11508 C++  (0) 2022.05.25