알고리즘

백준 11005 진법 변환 2 C++

fulladdr 2023. 9. 29. 14:25

이 문제 역시 간단한 구현 문제였다.

아스키코드 표가 잘 기억나지 않아서 스트링으로 변환해야하는숫자들을 담아놨다. 

 

N진법으로 나타내는 방법은, 숫자를 N으로 나눈 다음에 나머지를 역순으로 읽으면 되기 때문에 c++에서 제공해주는 스택 라이브러리를 사용했다.

N으로 나눈 다음에 반대방향으로 읽었다.

이렇게 하니 정답코드가나왔당

#include <iostream>
#include <stack>


using namespace std;

int N, B;

stack<char> s;
string convert = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";

int main(void){
    cin.tie(NULL);
    ios::sync_with_stdio(false);
    cin>>N>>B;
    /*
    10이면 A, 11이면 B, 이런식으로출력이되어야한다
    */
    while (N){
        char x;
        x=convert[N%B];
        s.push(x);
        N=N/B;
    }

    while (!s.empty()){
        cout<<s.top();
        s.pop();
    }
    cout<<endl;
    return 0;
}