-
백준 11005 - 진법 변환 2백준 algorithm 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; }
반응형'백준 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