문제
풀이1
풀이2

💡Idea

패턴 매칭 문제이다.
바로 string에 find를 사용하는 풀이가 떠올랐다.
사용자가 누른 조작에서 비밀 메뉴 조작법이 들어있는지 매칭해보면 된다.
혹은 strstr를 사용할 수도 있겠다.
g++환경에서 strstr함수가 KMP처럼 문자열과 패턴의 길이에 대한 선형시간에 매칭 결과를 준다고 한다.

🔑Code

#include <bits/stdc++.h>
using namespace std;

int main(void){
    ios_base::sync_with_stdio(0);
    cin.tie(0);

    string secretCode, order, input;
    int M, N, K;
    cin >> M >> N >> K;
    for(int  i = 0; i < M; i++){
        cin >> input;
        secretCode += input;
    }

    for(int  i = 0; i < N; i++){
        cin >> input;
        order += input;
    }

    if(order.find(secretCode) == string::npos)
        cout << "normal";
    else
        cout << "secret";
    
    return 0;
}

🗨️ Side Notes

find 함수는 문자열을 찾는데 성공하였다면, 해당 문자열의 시작 위치 를 반환하고, 찾지 못한다면 상수 string::npos 를 반환한다.
nposno position의 약자로 유효한 위치가 없다는 의미이다.