진법변환 공식은 N수가 있으면 나눠주고 그 나머지를 차례대로 스택에 넣어준 후 거꾸로 출력하면 된다. 그것은 수학 공식.
나는 벡터를 썻다. 스택과 벡터가 있으면 유연성 떄문이지 사람들이 벡터를 쓰던데 그 이유를 조금 찾아봐야겠다.. STL을 알고리즘 문제 풀때마다 그 때 그때 찾아써서 제대로 공부하고 각 자료구조들의 차이점 장점에 대해서 파악하고 분석해볼 필요를 느낀다... 일단 강의진도는 따라가고 문제로 돌아가면 위의 공식을 그대로 풀어주면 되지만 까다로운 부분은 36진법 까지 가능해서 얘네를 아스키코드로 변경시켜줘야하는 코드를 추가시켜줘야한다.. 인터넷창에 아스키 코드 검색하고 찾아봤다.. 아스키코드와 최근 CS:APP ISA(instruction set 아키텍쳐(스펠링생각안난다)) 부분을 공부하면서 느끼는 건데 컴퓨터는 정보를 encode 하고 decode가 핵심이라는 생각이든다.
#include <iostream>#include <vector>using namespace std;long long N;int main(){cin >> N;int b;cin >> b;char show_val;vector<int> output;while (N != 0){output.push_back(N%b);N = N / b;}while (!output.empty()){show_val = output.back();if (show_val > 9){for (int i = 0; i < 26; ++i){if (show_val == (i + 10)){show_val = show_val + 55;cout << show_val;output.pop_back();}}}else{cout << (int)show_val;output.pop_back();}}cout << endl;return 0;}
'백준 온라인 저지' 카테고리의 다른 글
백준 1978: 소수 찾기 (0) | 2018.07.13 |
---|---|
백준 1373: 2진수 8진수 (0) | 2018.07.13 |
백준 2225: 합분해 (0) | 2018.07.10 |
백준 2133: 타일 채우기 (0) | 2018.07.10 |
백준 1699: 제곱수의 합 (0) | 2018.07.10 |