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

박상혁·2026년 5월 20일

PS

목록 보기
4/97

이번에는 백준 10988번 팰린드롬인지 확인하기 문제를 풀어보았습니다.

이 문제는 문자열이 앞에서 읽을 때와 뒤에서 읽을 때 같은지를 확인하는 문제입니다.

문제 설명

알파벳 소문자로만 이루어진 단어가 주어집니다.

이 단어가 팰린드롬이면 1, 아니면 0을 출력하면 됩니다.

예를 들어

  • level
  • noon

은 팰린드롬이고,

  • baekjoon
  • online
  • judge

는 팰린드롬이 아닙니다.

풀이 아이디어

이 문제는 문자열을 뒤집은 뒤, 원래 문자열과 같은지만 비교하면 됩니다.

즉,

  1. 입력 문자열을 하나 저장해두고
  2. 문자열을 뒤집고
  3. 원본과 뒤집은 문자열이 같으면 1, 다르면 0

을 출력하는 방식으로 해결할 수 있습니다.

코드

#include <bits/stdc++.h>
using namespace std;

int main() {
    string s;
    cin >> s;

    string compare = s;
    reverse(s.begin(), s.end());

    if (compare == s) {
        cout << 1 << endl;
    } else {
        cout << 0 << endl;
    }

    return 0;
}

풀이 흐름

  1. 문자열 s를 입력받는다.
  2. 원본 문자열을 compare에 저장해둔다.
  3. reverse()를 사용해 s를 뒤집는다.
  4. 원본 문자열과 뒤집은 문자열을 비교한다.
  5. 같으면 1, 다르면 0을 출력한다.

구현 포인트

이 풀이의 핵심은 문자열을 뒤집어서 비교하는 것입니다.

C++에서는 reverse()를 사용하면 문자열을 쉽게 뒤집을 수 있기 때문에,

굳이 직접 앞뒤 인덱스를 비교하는 방식으로 구현하지 않아도 간단하게 해결할 수 있습니다.

이 문제는 결국 원래 문자열과 뒤집은 문자열을 비교하는 문제라고 볼 수 있습니다.

profile
엉덩이로 성장하는 개발자

0개의 댓글