Deep Learning through deep learning

백준 10988번 팰린드롬인지 확인하기 본문

Baekjoon_algorithm_heuristic

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

NeuroN 2023. 2. 8. 13:31

https://www.acmicpc.net/

 

Baekjoon Online Judge

Baekjoon Online Judge 프로그래밍 문제를 풀고 온라인으로 채점받을 수 있는 곳입니다.

www.acmicpc.net

문제 해석

더보기

이번에는 STL함수 size()함수에 대해 알아볼까 한다.
입력으로는 문자열이 하나 주어지고, 문자열을 탐색하여 문자열을 좌우로 뒤집어도 똑같은 문자열이 되는지, 즉 팰린드롬인지 확인해볼거다.

string으로 문자열을 입력해주고, 문자열은 문자열이름[인덱스번호] 인 중괄호를 이용해 문자열의 인덱스를 살펴볼 수 있다.
문자열을 탐색하기 위해 for문으로 탐색을 진행한다.
우리가 비교할 문자열 인덱스는 첫번째와 마지막, 두번째와 (마지막-1), 세번째와 (마지막-1)... 하여 총 문자열 길이의 절반만 탐색하면 된다.

이때 문자열 길이를 알기 위해서 STL함수 size()를 사용한다.
배열이름.size()하면 배열의 길이 크기가 나온다.
이를 이용해 배열의 마지막 인덱스를 출력하기 위해서는 배열이름[배열이름.size()-1] 을 해주면 된다. (배열은 0부터 시작하기에 뒤에 -1을 붙였다.)

이제 탐색을 진행하면서 두 인덱스의 문자열 문자가 다른 경우 펠린드롬을 위배하므로 0을 출력하고 return해서 코드를 끝내준다.
만약 펠린드롬 문자열이라면, 마지막에 1을 출력해준다.

정답 코드

#include <iostream>
#include <math.h>
#include <algorithm>
#include <vector>
#include <string>
using namespace std;

int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	string a; cin >> a;
	for (int i = 0; i < a.size()/2; i++)
	{
		if (a[i] != a[a.size()-i-1])
		{
			cout << 0;
			return 0;
		}
	}
	cout << 1;
	return 0;
}

'Baekjoon_algorithm_heuristic' 카테고리의 다른 글

백준 2441 별 찍기 - 4  (0) 2023.02.17
백준 7567번 그릇  (0) 2023.02.08
백준 25305번 커트라인  (0) 2023.02.08
백준 10817번 세 수  (0) 2023.02.08
백준 2566번 최댓값  (0) 2023.02.02