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() 은 문자열의 가장 뒷 문자를 반환한다.
이건 알고 있으면 나중에 유용하게 쓰일 것 같다.