백준 algorithm
백준 11005 - 진법 변환 2
cosmohoo
2020. 4. 1. 01:05
반응형
=> 간단한 진법 변환 문제이다.
=> 진법 변환의 알고리즘을 알아야한다.
ex)
11 을 3진법으로 나타내고자 한다.
11 / 3 = 3 ... 2(나머지)
3 / 3 = 1 ... 0
1/3 = 0 ... 1
=>의 결과로 102(3) 의 결과를 얻을 수 있다.
=> 위와 같은 알고리즘을 실행하기 위해서는 stack을 사용하면 손쉽게 해결할 수 있다.
=> stack 은 두개의 다른 자료형을 넣을 수 없다.
=> 10이 넘는 숫자는 A .... Z로 표현할 수 있다.
=> 아스키코드를 이용하여 해당 숫자를 표현하였다.
#include <iostream>
#include <algorithm>
#include <stack>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
int N;
int B;
cin >> N;
cin >> B;
stack<int> st;
while(N!=0)
{
st.push(N%B);
N /=B;
}
while(!st.empty())
{
if(st.top()<10)
{
cout << st.top();
st.pop();
}
else
{
char c=st.top()+55;
cout<<c;
st.pop();
}
}
cout<<'\n';
return 0;
}
반응형