🔗문제 풀러가기
단계별로 풀어보기 단계 6의 4번째 문제이다.
나는 이 문제를 string을 입력 받고
그 string의 문자열을 반전시킨 reverse라는 문자열을 하나 더 만들어
그 두개를 비교하여 문제를 풀었다.
#include <iostream>
#include <string>
using namespace std;
int main()
{
string input;
cin >> input;
char reverse[100] = {0};
for (int i = 0; i < input.length(); i++)
{
reverse[i] = input[input.length() - i - 1];
}
for (int i = 0; i <= input.length(); i++)
{
if (reverse[i] != input[i])
{
cout << "0";
return 0;
}
}
cout << "1";
}
우선 자료형이 string인 input을 입력받는다.
그 후 for문을 돌려 문자열 reverse에
input[input.length() - i - 1]의 값
즉, input의 가장 마지막 값부터 reverse에 할당한다.
말 그대로 reverse는 input의 값들을 반전시킨 문자열인 것이다.
여기서 그냥
input[input.length() - i]가 아니라 1을 한번 더 빼주는 이유는
string은 가장 마지막 값이 무조건 null이기 때문이다.
이제 이렇게 얻은 reverse와 input을 비교해 같은 인덱스의 값이 다르면
팰린드롬이 아닌 것 이므로 0을 출력하고, return을 해서 실행을 종료해준다.
하지만 이 if문에 걸리지 않았다면 입력받은 문자열이 팰린드롬 이므로
1을 출력해주면 끝!