Algorithm

[Algorithm] 백준 11068 - 회문인 수 풀이

용성군 2021. 9. 29. 01:56
728x90
반응형

풀이

브루투포스 알고리즘으로 푸는 문제이다. 따라서 for문을 통해 각 진법으로 바꾸고 거꾸로 뒤집어도 회문인 수인지 판별 해주면 되었다. 

처음에 각 진법으로 변환할때 문자를 이용해 비교하려고 하였으나 그냥 나머지 값이 같은지 비교하도록 하였다. 


코드

#include <stdio.h>
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main()
{
    int t;
    scanf("%d", &t);
    while(t--)
    {
        int n;
        scanf("%d", &n);
        
        vector<int> v;
        v.clear();
        bool flag = true;
        
        for(int  b = 2; b <= 64; b++)
        {
            int temp_num = n;
            while(temp_num != 0)
            {
                int r = temp_num % b;
                temp_num = temp_num / b;   
                v.push_back(r);
            }
            int left = 0, right = v.size()-1;
            flag = true;
            
            while(left <= right)
            {   
                if(v[left] == v[right])
                {
                    left++;
                    right--;
                    continue;
                }
                else
                {
                    flag = false;
                    break;
                }
            }   
            if(flag == true)
            {
                printf("1\n");
                break;
            }
            v.clear();
        }
        if(flag == false) printf("0\n");
    }
}
728x90
반응형