728x90
코드를 조금 길게 짠 것 같지만 일단은 맞았다.
음... 다음엔 좀 더 줄여보는걸로..
그나저나 1단계라니.. 윤군님 너무하십니다ㅠㅠ
#include <iostream>
#include <string>
using namespace std;
int n, r, sw, cp, cnt;
string t;
int main() {
cin>>n>>t; //n과 t를 입력 받는다.
for(r=2; r<=16; r++) //2진법~16진법 하나하나 다 확인한다.
{
sw=0;
cp=n;
cnt=0;
//--------------------------------------------------------------
while(cp) //우선 r진법으로 변환했을 때 t랑 자릿수의 개수가 같은지 체크해서, 같지 않다면 거른다.
{
cnt++;
cp/=r;
}
if(cnt!=t.size())
{
continue;
}
else
cp=n;
//--------------------------------------------------------------
if(r>10) //11진법 이상일 때-------------------------------------
for(int i=t.size()-1; i>=0; i--)
{
if((cp%r)>=10) //10이상은 영어로 바꾸어야함
{
if((char)(cp%r+55)==t[i])
sw=1;
else
{
sw=0;
break;
}
}
else
{
if((char)(cp%r+48)==t[i])
sw=1;
else
{
sw=0;
break;
}
}
cp/=r;
}
//-------------------------------------------------------------
else //10진법 이하일 때-----------------------------------------
for(int i=t.size()-1; i>=0; i--)
{
if((char)(cp%r+48)==t[i])
sw=1;
else
{
sw=0;
break;
}
cp/=r;
}
//-------------------------------------------------------------
if(sw)
break;
}
cout<<r;
}
728x90
'알고리즘 > 문제' 카테고리의 다른 글
[백준] 9093. 단어 뒤집기 <C++> (0) | 2020.06.03 |
---|---|
구름 문제은행 (n진법) <C++> (0) | 2020.05.30 |
[백준] 18883. N M 찍기 <C++> (0) | 2020.04.27 |
[백준] 18512. 점프 점프 <C++> (0) | 2020.04.24 |
[백준] 4344. 평균은 넘겠지 <C++> (0) | 2020.04.17 |
댓글