ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 백준 11005 - 진법 변환 2
    백준 algorithm 2020. 4. 1. 01:05

    문제 설명

     

     

    => 간단한 진법 변환 문제이다. 

    => 진법 변환의 알고리즘을 알아야한다. 

     

    ex) 

    11 을 3진법으로 나타내고자 한다. 

     

    11 / 3 = 3 ... 2(나머지)

    3 / 3 = 1 ... 0

    1/3 = 0 ...

     

     

    =>의 결과로  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;
    }
    
    

     

     

    실행 결과 
    실행 결과 2 (ex)

    '백준 algorithm' 카테고리의 다른 글

    백준 11576 - Base Conversion  (0) 2020.04.05
    백준 2745 - 진법 변환  (0) 2020.04.01
    백준 1157 - 단어공부  (0) 2020.03.29
    백준 2675 - 문자열 반복  (0) 2020.03.26
    백준 10809 - 알파벳 찾기  (0) 2020.03.26

    댓글

Designed by Who.