[백준 10988] 팰린드롬인지 확인하기

alsry._.112·2023년 7월 25일
0

백준

목록 보기
3/102
post-thumbnail

🔗문제 풀러가기
단계별로 풀어보기 단계 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을 출력해주면 끝!

profile
소통해요

0개의 댓글