본문 바로가기

C++/코드트리

[코드트리] 팰린드롬 수 찾기

 

https://www.codetree.ai/missions/5/problems/find-the-number-of-palindrome?utm_source=clipboard&utm_medium=text 

 

코드트리 | 코딩테스트 준비를 위한 알고리즘 정석

국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.

www.codetree.ai

 

팰린드롬 수는 결국 자릿수마다 저장하고 양쪽 끝부터 같은지 비교하면 된다.

나는 각 숫자를 배열에 저장하고 다시 값을 체크하는 식으로 했는데,

코드트리의 해설은 그냥 값을 거꾸로 저장하고 둘이 같은지 아닌지 체크하는 식으로 진행했다.

내 풀이보다 훨씬 간결하고 보기 좋았다.

 

#include <iostream>
using namespace std;
int x, y;
int main() {
    cin >> x >> y;

    int answer = 0;
    for(int i=x; i<=y; i++){
        int temp[8], cnt = 0, now = i, flag = 0;
        while(now > 0){
            temp[cnt++] = now % 10;
            now /= 10;
        }
        for(int j=0; j<(cnt/ 2); j++){
            if(temp[j] != temp[cnt-(j+1)]){
                flag = 1;
                break;
            }
        }
        if(flag == 0)
            answer++;
    }

    cout << answer;
    return 0;
}

 

코드트리의 해설 형식으로 구현해보았다.

#include <iostream>
#include <string>
using namespace std;
int x, y;
int main() {
    cin >> x >> y;

    int answer = 0;
    for(int i=x; i<=y; i++){
        string now = to_string(i);
        string temp;
        
        for(int j=0; j<(int)now.length(); j++){
            temp += now[now.length() - (j + 1)]; 
        }
        
        if(now == temp)
            answer++;
    }

    cout << answer;
    return 0;
}

'C++ > 코드트리' 카테고리의 다른 글