https://www.acmicpc.net/problem/11005
10진법 수가 입력으로 주어지면, 입력받은 진법으로 변환하는 문제이다.
#include <iostream>
#include <string>
#include <map>
#include <cmath>
using namespace std;
int main(){
int n;
int b;
cin >> n >> b;
map<int, char> m;
for (int i=0;i<10;i++){
m.insert({i,'0'+i});
}
for (int i=10;i<36;i++){
m.insert({i, 'A'+i-10});
}
string answer = "";
while (n > 0){
answer.insert(0, 1, m.find(n%b)->second);
n /= b;
}
cout << answer;
}
map을 통해 숫자와 그에 맞게 진법에 변환한 수를 매핑한다.
입력받은 숫자를 입력받은 진법 숫자로 나눠가면서, 그 나머지를 map에서 찾아 값을 불러와 문자열에 추가시킨다.
'알고리즘 > 백준' 카테고리의 다른 글
백준 2903번 중앙 이동 알고리즘 [C++] (1) | 2023.11.26 |
---|---|
백준 2720번 세탁소 사장 동혁 [C++] (1) | 2023.11.26 |
백준 2745번 진법 변환 [C++] (1) | 2023.11.26 |
백준 2563번 색종이 [C++] (1) | 2023.11.25 |
백준 10798번 세로읽기 [C++] (0) | 2023.11.25 |