[Algorithm #04] 10988 - 팰린드롬인지 확인하기 (C++)

이석환·2023년 4월 10일

Algorithm

목록 보기
5/16

문제 정리
1. 문자열을 입력받는다.
2. 입력받은 문자열이 팰린드롬인지 확인하여 맞으면 1 아니면 0을 출력한다.


https://www.acmicpc.net/problem/10988

문제 해결 전략
1. 문자열을 string으로 입력받는다.
2. 문자열의 사이즈에서 하나를 뺀 값으로 문자열의 마지막을 가리키는 번호로 인덱싱한다.
3. 문자열의 길이만큼 반복문을 실행한다.
4. 2에서 알아낸 값으로 맨 뒤에서부터 추적, i값으로 앞에서부터 추적
5. 같으면 계속해서 boolean값인 result를 true로 해둔다.
6. 다를 경우 result를 false로 하고 바로 반복문을 탈출한다.
7. 반복문을 통해 i는 증가 end_char 값은 감소
8. i의 값을 2로 나누었을 때 몫으로 1이 나온다면 중간까지 온 것이기 때문에 break
9. result값으로 1과 0을 판단하여 출력

#include <iostream>

using namespace std;

int main(void) {
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    string s;
    cin >> s;
    int end_char = s.size() - 1;
    bool result;

    for (int i = 0; i < s.size(); i++) {
        if (i / 2 == 1)
            break;
        if (s[i] == s[end_char])
            result = true;
        else {
            result = false;
            break;
        }
        end_char--;
    }
    if (result == true)
        cout << "1" << "\n";
    else
        cout << "0" << "\n";
}

소감
문제 해결 전략이 길어서 어려웠던 것 처럼 보이지만 엄청나게 쉬운 난이도의 문제다.
사실 더 쉽게 풀 수 있는데 이 때 당시에는 초반 문제들이 너무 쉬워서 하루 2문제가 아니라 5,6 문제씩 풀다보니 그냥 타임어택처럼 풀었던 것 같다.
어쨌든 문자열을 다루는 문제지만 굉장히 쉬웠던 문제
코테에도 이런 문제만 나왔으면 좋겠다 .. !

profile
반갑습니다.

0개의 댓글