문제 설명
영어 소문자로 구성된 단어 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() 은 문자열의 가장 뒷 문자를 반환한다.
이건 알고 있으면 나중에 유용하게 쓰일 것 같다.
'PS > CodeUp' 카테고리의 다른 글
CodeUp / 1차원 배열 / 1411번 / 빠진 카드 / C++ (0) | 2020.10.02 |
---|---|
CodeUp / 입,출력 / 1125번 / 8진수 16진수 변환 / C++ (0) | 2020.09.30 |
CodeUp / String(문자열) / 1754번 / 큰 수 비교 / C++ (0) | 2020.09.29 |
CodeUp / String(문자열) / 1408번 / 암호처리 / C++ (0) | 2020.09.29 |