본문 바로가기
Algorithm/C++

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

by imagineer_jinny 2023. 8. 20.

10988번: 팰린드롬인지 확인하기 (acmicpc.net)

 

10988번: 팰린드롬인지 확인하기

첫째 줄에 단어가 주어진다. 단어의 길이는 1보다 크거나 같고, 100보다 작거나 같으며, 알파벳 소문자로만 이루어져 있다.

www.acmicpc.net

 

문제

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

이때, 이 단어가 팰린드롬인지 아닌지 확인하는 프로그램을 작성하시오.

팰린드롬이란 앞으로 읽을 때와 거꾸로 읽을 때 똑같은 단어를 말한다. 

level, noon은 팰린드롬이고, baekjoon, online, judge는 팰린드롬이 아니다.

입력

첫째 줄에 단어가 주어진다. 단어의 길이는 1보다 크거나 같고, 100보다 작거나 같으며, 알파벳 소문자로만 이루어져 있다.

출력

첫째 줄에 팰린드롬이면 1, 아니면 0을 출력한다.

예제 입력 1

level

예제 출력 1 

1

예제 입력 2 

baekjoon
 

예제 출력 2

0

 

 

사고 과정  / 맞음

앞뒤가 똑같은 것을 어떻게 판별할까?

반으로 나눴을 때 서로 대칭인지 아닌지 알아보면 되겠다.

 

단어 길이를 구하는데 짝수/홀수에 따라 경우가 다르겠다

 

짝수면 사이즈 반으로 나눠서, 홀수여도 사이즈 반으로 나눠서 

 

// 이정도 생각하고 코딩을 하면서 생각하기 시작. 좋은 습관은 아닌 것 같음

 

앞에서 부터 체크 + 뒤에서 부터 체크 하면 되지 않을까?

 

/*

팰린드롬 = 앞으로 읽을때, 거꾸로 읽을때 똑같은것

입력 s를 받으면
s를 거꾸로한 문자열 t를 구하면
s랑 t랑 같은지 비교할 수 있음.

1. s를 거꾸로 바꾸기

string s;

reverse(s.begin(), s.end());

string s, t;
cin >> s;
t = s;



2. s와 t를 비교하기

*/

#include <bits/stdc++.h>

using namespace std;

string S, T;

string rev(string x) {
    string y;

    

    return y;
}

int main() {
    cin >> S;
    T = S;
    reverse(T.begin(), T.end());
    cout << (S == T);
    return 0;
}

'Algorithm > C++' 카테고리의 다른 글

[백준 17608] 막대기  (0) 2023.08.20
[백준 8958] OX퀴즈  (0) 2023.08.20
[백준 1110] 더하기 사이클  (0) 2023.08.20
[백준 17838] 커맨드  (0) 2023.08.19
[백준 7568] 덩치  (0) 2023.08.19

댓글