
์ ์ง๊ธ๋ถํฐ ๋๋ ๋ฉ์ฒญ์ด๋ค๋ฅผ 100๋ฒ ๋ณต์ฐฝํ๋ค.
์ต๋์ธ 1000000๋ฅผ 2์ง์๋ก ๋ฐ๊พธ๋ฉด ์ฝ 20์๋ฆฌ ์๊ฐ ๋์ค๋๋ฐ, ๋ ์ด๊ฑธ ๋ฐ๋ณด๊ฐ์ด ๋ฐฐ์ด์ ์ต์ด ๋๋ ๋งํผ ํ ๋นํด์ผํ๋ค๊ณ ์๊ฐํ๋ค... (๋์ฒด ์..?) ๊ทธ๋์ ์ด๊ฑด ์ด๋ป๊ฒ ํ๋ผ๋ ๊ฑธ๊น, ๋ฐฐ์ด๋ก๋ ์๋๊ณ ๋์ ํ ๋น์ผ๋ก๋ ์๋์ด์ ๊ฒฐ๊ตญ ์ธํฐ๋ท ์ฐพ์์ deque์ ์ฌ์ฉํ๋๋ฐ......... ์๊ฐํด๋ณด๋๊น ๋ฐฐ์ด์ 20๊ฐ ์๋ฆฌ๋ง ์์ด๋ ๋๋ ๊ฑฐ์์ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ๊ฐ๋ฉ์ฒญํด........
#include <iostream>
#include <queue>
using namespace std;
int examine(int a)
{
deque<int> memory;
for (int i = 2; i <= 64; i++)
{
int tmp = a;
bool flag = true;
memory.clear();
while (tmp)
{
memory.push_front(tmp % i);
tmp /= i;
}
int size = memory.size();
for (int j = 0; j < (size / 2); j++)
{
if (memory.front() != memory.back())
{
flag = false;
break;
}
memory.pop_back();
memory.pop_front();
}
if (flag == true)
{
return 1;
}
}
return 0;
}
int main()
{
int TC, number;
cin >> TC;
for (int i = 0; i < TC; i++)
{
cin >> number;
cout << examine(number);
cout<<"\n";
}
}
deque ๊ฐ์ ธ๋ค ์ด๊ฑฐ ๋นผ๊ณ ๋ ๋ค ๋ด๊ฐ ์๊ฐํด์ ์งฐ๋ค
๋จ์ํ๋ค. for๋ฌธ์ 2๋ถํฐ 64๊น์ง ๋๋ฉด์ ์ง๋ฒ ๊ณ์ฐ์ ํ๊ณ ํ๋ฌธ์ธ์ง ์๋์ง ๊ฒ์ฌํ ๊ฑด๋ฐ,
์๋ ์ง๋ฒ ๊ณ์ฐ์ ๋๋๊ณ ๋จ์ ๋๋จธ์ง๋ฅผ ๊ฑฐ๊พธ๋ก ์ ๋ ฌํด์ผํ์ง๋ง, ์ด์ฐจํผ ํ๋ฌธ ๊ฒ์ฌ๋ผ ๊ตณ์ด ๊ทธ๋ฌ์ง ์๊ณ ๋๋จธ์ง๋ฅผ ์์ฐจ์ ์ผ๋ก deque์ ์ ์ฅํ๋ค.
์ง๋ฒ ๋ณํ์ ํ ํ์๋ deque์์ ์ ๊ฐ, ๋ท ๊ฐ์ ๋น๊ตํด, ํ ๋ฒ์ด๋ผ๋ ์๋ค๊ฐ ์ผ์นํ์ง ์์ผ๋ฉด ๊ทธ๋ฅ flag ๋ฐ๊พธ๊ณ breakํด์คฌ๊ณ , ๋ง์ฝ ๋ชจ๋ ์ผ์นํด์ flag๊ฐ true๋ผ๋ฉด 1์ returnํด์ค์, ํ๋๋ผ๋ ํ๋ฌธ์ด๋ผ๋ฉด 1์ ์ถ๋ ฅํ๋๋ก ํ๋ค.
for๋ฌธ์ ๋์์ 64์ง๋ฒ๊น์ง ๋ชจ๋ flag๊ฐ 1์ธ์ ์ด ์์๋ค๋ฉด return ๋์ง ์์์ ๊ฒ์ด๋ฏ๋ก, ๋จ ํ๋๋ ํ๋ฌธ์ด ์๋๋ผ๋ ๊ฒ์ด๊ณ ๊ทธ๋์ ๊ทธ ๋ return 0์ ํด์ฃผ์๋ค. ํ
'๐ก๐ธ๐ธ๐ถ๐ฃ: ๐๐๐๐๐๐พ๐๐ฝ๐ > ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
BOJ1343 : ํด๋ฆฌ์ค๋ฏธ๋ ธ (Silver 5) (0) | 2021.08.13 |
---|---|
BOJ11170 : 0์ ๊ฐ์ (Silver 5) (0) | 2021.08.11 |
BOJ17127 : ๋ฒ๊ฝ์ด ์ ๋ณด์ฌ์ ํผ์ด๋ ์ด์ (Bronze 1) (0) | 2021.08.11 |
BOJ18512 : ์ ํ์ ํ (Bronze 1) (0) | 2021.08.11 |
BOJ1463 : 1๋ก ๋ง๋ค๊ธฐ (Silver 3) (0) | 2021.08.08 |