반응형
https://www.acmicpc.net/problem/11576
진법변환해 답을 저장할 자료구조를 적절히 선택하는 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
1. 진법 a, 진법 b, a를 구성하는 10진수로 표현된 수의 개수m, 개수를 저장할 vector nums, 정답을 출력할 stack ans를 선언 후 적절히 입력받습니다. 2. m만큼 for loop를 수행하며 nums에 수들을 입력받고 저장합니다.
📔 풀이과정
함수 converter를 수행합니다.
a진법으로 표현된 수를 10진수로 변환한 뒤 다시 b진법으로 변환하고 결과를 ans에 push하는 함수입니다.
📔 정답출력
ans의 원소들을 pop하며 top부터 출력해줍니다.
📕 Code
#include <bits/stdc++.h>
using namespace std;
int a,b,m;
vector <int> nums;
stack <int> ans;
void converter(){
int decimal = 0;
int converted = 0;
for(int i = 0; i < m; i++){
decimal += nums[m - i - 1] * pow(a, i);
}
while(decimal){
ans.push(decimal % b);
decimal /= b;
}
}
int main(){
cin >> a >> b >> m;
for(int i = 0, num; i < m; i++) {
cin >> num;
nums.push_back(num);
}
converter();
while(ans.size()){
cout << ans.top() << ' ';
ans.pop();
}
}
'Algorithm > 자료구조' 카테고리의 다른 글
(C++) - 백준(BOJ) 5397 : 키로거 (0) | 2022.04.04 |
---|---|
(C++) - 백준(BOJ) 10104 : Party Invitation (0) | 2022.04.02 |
(C++) - 백준(BOJ) 1417 : 국회의원 선거 (2) | 2022.03.03 |
(C++) - 백준(BOJ) 1380 : 귀걸이 (0) | 2022.02.12 |
(C++) - 백준(BOJ) 1864 : 문어 숫자 (0) | 2021.11.20 |