본문 바로가기

문제 풀이/문제 풀이(BOJ)

[Silver V] 피카츄 - 14405

[문제 위치]

https://www.acmicpc.net/submit/14405/90624111

[문제 풀이]

간단하게 생각하면 된다.

문자열을 순회하여 그 순간 순간 발음이 가능한지 보면 된다.

하나라도 발음이 불가하면 종료 되므로 하드 코딩하여 확인을 통해 발음 여부를 확인하면 된다.

#include <iostream>
#include <string>

using namespace std;

bool canPronounce(string S) {
    int i = 0;
    int n = S.length();
    
    while (i < n) {
        if (i + 1 < n && S[i] == 'p' && S[i + 1] == 'i') {
            i += 2;
        }
        else if (i + 1 < n && S[i] == 'k' && S[i + 1] == 'a') {
            i += 2;
        }
        else if (i + 2 < n && S[i] == 'c' && S[i + 1] == 'h' && S[i + 2] == 'u') {
            i += 3;
        }
        else {
            return false;
        }
    }
    
    return true;
}

int main() {
    string S;
    cin >> S;
    
    if (canPronounce(S)) {
        cout << "YES" << endl;
    }
    else {
        cout << "NO" << endl;
    }
    
    return 0;
}

'문제 풀이 > 문제 풀이(BOJ)' 카테고리의 다른 글

[Silver V] 연속인가? - 26517  (0) 2025.03.02
[Silver V] 기상캐스터 - 10709  (0) 2025.03.02
[Silver V] 10431 - 줄세우기  (0) 2025.01.21
[Silver V] 그룹 단어 체커  (0) 2024.12.18
연습문제 > 숫자의 표현  (0) 2024.12.04