Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 컴퓨터공학 #Java #자바 #클래스 #객체 #인스턴스
- HTML #CSS
- BOJ #컴퓨터공학 #C++ #알고리즘 #자료구조
- 잔
- 컴퓨터공학 #자료구조 #스택 #c++ #알고리즘 #백준문제풀이
- 컴퓨터공학 #c #c언어 #문자열입력
Archives
- Today
- Total
영벨롭 개발 일지
[백준 BOJ][C++]11005번 진법 변환2 풀이 본문
https://www.acmicpc.net/problem/11005
10진법 수 N을 B진법으로 변환하는 방법은 간단합니다.
N을 B로 나누어 그 나머지를 저장하고 이 과정을 N이 0이 될 때까지 반복하면 됩니다.
각각의 나머지들이 저장되는 순서는 정답 순서의 반대이기 때문에 stack의 역할을 하는 vector를 사용하여 나머지를 저장했습니다.
아스키 코드표에서 알파벳 'A'는 65, 숫자 '0'은 48입니다.
나머지가 10 이상, 35 이하이면 알파벳으로 표현해야 하기 때문에, 나머지-10+65를 하여 vector에 push 하였고,
그게 아니라면 숫자 그대로 추가하면 되기 때문에, 나머지+48를 하여 vector에 push하면 됩니다.
#include<iostream>
#include<vector>
using namespace std;
int main(void) {
int N, B;
vector<char> ans;
cin >> N >> B;
while (N > 0) {
int temp = N % B;
char c;
if (temp >= 10 && temp <= 35) {
c = temp + 55;
}
else {
c = temp + 48;
}
ans.push_back(c);
N /= B;
}
while (!ans.empty()) {
cout << ans.back();
ans.pop_back();
}
return 0;
}
반응형
'알고리즘 문제 풀이 > BOJ' 카테고리의 다른 글
[백준 BOJ][C++]11053번 가장 긴 증가하는 부분 수열 풀이: DP (0) | 2022.03.04 |
---|---|
[백준 BOJ][C++]11576번 Base Conversion 풀이: 진법 변환 (0) | 2022.03.04 |
[백준 BOJ][C++]11725번 트리의 부모 찾기 풀이: BFS/DFS (2) | 2022.03.01 |
[백준 BOJ][C++]7576번 토마토 풀이: BFS/DFS (0) | 2022.02.28 |
[백준 BOJ][C++]4963번 섬의 개수 풀이: DFS/BFS (0) | 2022.02.27 |