PS/CodeUp

CodeUp / String(문자열) / 2721번 / 순환 문자열 / C++

KimMinJun 2020. 9. 29. 22:33

문제 설명  

영어 소문자로 구성된 단어 S1, S2, S3가 있을때,

S1의 마지막 문자가 S2의 첫 글자와 같고,

S2의 마지막 글자가 S3의 첫 글자와 같고,

S3의 마지막 글자가 S1의 첫 글자와 같으면 순환 문자열이라고 한다.

예를 들어 turtle error robot 인 경우 순환 문자열이다.

세 단어가 주어졌을 때 순환 문자열이면 good을 출력, 아니면 bad를 출력하시오.

 

입력

영어 소문자로 구성된 단어 S1, S2, S3가 각 줄에 한개씩 입력된다.(각 문자열에 공백은 없으며 길이는 2글자 이상

20글자 이하이다.)

 

출력

순환 문자열이면 good을 출력, 아니면 bad를 출력하시오.

 

입력 예시

turtle error robot

 

출력 예시

good

 

#include <iostream>
#include <string>
using namespace std;

int main() {
	string str1, str2, str3;
	cin >> str1 >> str2 >> str3;

	if (str1.back() == str2.front()) {
		if (str2.back() == str3.front()) {
			if (str3.back() == str1.front()) {
				cout << "good" << endl;
			}
			else cout << "bad" << endl;
		}
		else cout << "bad" << endl;
	}

	else cout << "bad" << endl;
}

 


사실 이 문제를 풀기위해 각 문자열의 첫글자와 마지막글자에 어떻게 접근할까 하고 구글링과 레퍼런스를 뒤지던중,

정말 좋은것을 발견했다.

str.front() 는 문자열의 가장 앞 문자를 반환하고, str.back() 은 문자열의 가장 뒷 문자를 반환한다.

이건 알고 있으면 나중에 유용하게 쓰일 것 같다.