Game Tech Blog

10988.팰린드롬인지 확인하기 본문

Algorithm/백준 온라인 저지

10988.팰린드롬인지 확인하기

jonghow 2023. 7. 31. 14:00
반응형

[문제]

알파벳 소문자로만 이루어진 단어가 주어진다. 이때, 이 단어가 팰린드롬인지 아닌지 확인하는 프로그램을 작성하시오.

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

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

[입력]

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

[출력]

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

[TC]

1.TC - Input

level

TC - output

1

2. TC - Input

baekjoon

TC - output

0

[접근]

처음 구안한 방법은 처음과 끝으로 인덱스를 지정해서 하나씩 증가, 감소를 통한 '투포인터' 방식으로 진행

물론, reverse 함수하면 숏코딩이 나올 수 있겠지만, 내장함수 의존적이라고 판단해서 투포인터 방식으로 문제 처리

 

[코드] - C++ 

-> 투포인터 방식 사용

#include <iostream>
#include <string>
using namespace std;

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

[코드] - C++

-> reverse 함수 사용

#include <iostream>
#include <algorithm>
#include <iterator>

using namespace std;

int main()
{
        string str;
        string temp;
        cin >> str;
        temp = str;
        reverse(temp.begin(),temp.end());
        
        if(temp != str) cout << 0;
        else   cout << 1;
            
        return 0;
}

[결과 및 시도]

[후기]

바로 구안한 투포인터 방식으로 사용하면 사실 첫 제출과 정답까지의 간격은 2분, 거의 3분 ~ 4분컷 문제였다.

해설 강의 들으면서 새로운 방식이 있는지 기대를 해보았지만, 일부러 회피했던 reverse 방식을 사용해서 조금 아쉬웠다. 

쉬운문제 쉽게 빨리 넘어가는것도 좋지만 다른 원리를 알아가는것도 좋다고 생각하기 때문이다.

 

reverse 를 사용하기위해는 반복자 헤더도 인클루드 해야된다는것을 vs 에서 직접 적어보고 알았다.

5분컷보다도 빠른 3분컷 문제였다.

반응형

'Algorithm > 백준 온라인 저지' 카테고리의 다른 글

11655.ROT13  (0) 2023.08.03
1159.농구 경기  (0) 2023.08.02
2979. 트럭 주차  (0) 2023.07.31
10808. 알파벳 개수  (0) 2023.07.27
2309. 일곱 난쟁이  (0) 2023.07.26
Comments