https://www.acmicpc.net/problem/8611
문제
코드
#include <bits/stdc++.h>
using namespace std;
#include <cmath>
#define PI 3.141592653589793
#define ll long long
int main(void)
{
ios::sync_with_stdio(0);
cin.tie(0);
ll n;
cin >> n;
ll st = n;
int cnt=0;
for (int i=2; i<=10; i++)
{
n = st;
vector<int> v;
bool flag = true;
while(n>0)
{
v.push_back(n%i);
n = n/i;
}
int len = v.size();
for (int j=0; j<len; j++)
{
if (v[j] == v[len-j-1])
{
continue;
}
else
{
flag = false;
break;
}
}
if (flag)
{
cnt++;
cout << i << ' ';
for (int k=0; k<len; k++)
cout << v[k];
cout << '\n';
}
}
if (cnt==0)
cout << "NIE";
}
풀이
22~26번째 줄은 입력받은 n을 i(2~10)진법으로 나타내는 것이다.
28~39번째 줄은 저장된 벡터에서 대칭위치의 index를 비교하면서 값이 같으면 continue, 다르면 flag를 flase로 바꾸고 반복문을 나간다. 이후 40~47번째 줄에서 flag가 true이면, cnt를 1증가시키고 문제의 조건대로 출력한다.
만약, i(2~10)가 반복문을 도는동안 팰린드롬 숫자가 없었다면 cnt는 초기값인 0이 되고 "NIE"를 출력하게된다.
주어진 예제를 입력하면 출력이 잘 나오는데, 채점을 돌리면 4%에서 틀렸다고 나오는데 어디서 틀린건지 궁금하다.
'Koala - 5기 > 기초 알고리즘 스터디' 카테고리의 다른 글
[백준/c++] 1100 하얀 칸 (0) | 2022.02.14 |
---|---|
[백준/python] 5533번 유니크 (0) | 2022.02.14 |
[BOJ/python] 10989번 수 정렬하기 3 (0) | 2022.02.13 |
[백준 / python] 2566번 최댓값 (0) | 2022.02.12 |
[백준/C++] 2493번 탑 (1) | 2022.02.09 |