문제

멤버마을 멤버집에 살고 있는 우리 친구 현수는 축구를 너~~무 좋아해요♥

멤버학교에 새로 입학한 신입들을 데리고 축구를 하러 나가려는 찰나!! 멤버마을의 촌장인 미스타 "손"은 피곤한 신입들을 보호하고자 현수를 가로막습니다. 옆에서 지켜보고 있던 멤버마을의 부촌장인 새로운 "손"은 한가지 제안을 합니다. 

 

"마을에 쯔쯔가무시가 돌고 있다. 쥐를 잡아와라. 그렇다면 축구를 허락하겠다!"

축구를 너무 사랑하는 우리 친구 현수를 돕기 위해서 다함께 고양이(CAT)를 한마리 찾아볼까요?

 

입력된 문자열에 C, A, T가 순서대로 들어있다면 "YES"를 출력하고,

순서가 섞여 있거나 혹은 없다면 "NO"를 출력하세요.

 

입력

문자열의 길이는 1~50개이며, 'A' 부터 'Z' 이 이외의 문자는 없다.

 

출력

고양이를 찾으면 "YES"

못찾으면 "NO" 

예제 입력1

XCYAZTX

예제 출력1

YES


예제 입력2

CTA

예제 출력2

NO


예제 입력3

SGHDJHFIOPUFUHCHIOJBHAUINUIT

예제 출력3

YES


예제 입력4

CCCATT

예제 출력4

NO

 

HINT

고양이는 한 마리만 잡읍시다! 사료값 아끼자구요!



[문제 풀이]

순서대로 "CAT"이라는 단어가 순서대로 한 번만 존재해야하지만  "YES"가 출력되는 문제이다.

꼭 붙어있을 필요는 없고, 예제 이력 4를 보면 CAT가 하나 있는 것처럼 볼 수도 있겠지만!

CCCATT, CCCATT, CCCATT, CCCATT, CCCATT, CCCAT로 여러가지의 CAT이 나오므로 출력은 NO라고 볼 수 있다.



[소스코드 설명]

변수 cat은 사용자의 입력이 들어가게 되고, cat2에는 C, A, T일 경우, 그 단어를 받아들이는 임시 변수라고 보면 된다.

그리고 여기서 cat2.find("CAT"); 라는 것을 썼는데, 그것은 C++에서 제공하는 find()함수를 이용하여 cat2에 CAT이 존재하는지를 찾아주는 함수이다.

string::find

CString 개체의 문자열 기준, 좌측에서부터 문자 혹은 문자열을 검색한다.


string::find()를 통하여 원하는 단어나 문장을 검색 후 

그것이 문자열에 있는지 없는지string::npos를 통하여 알 수가 있다.

(string::find()는 찾고자 하는 단어나 문자열이 없으면 string::npos를 리턴한다.)



Posted by 밍쫑
,