euisblue
1550. 16진수

https://www.acmicpc.net/problem/1550

걸린 시간: 6m13s

문제

16진수 수를 입력받아서 10진수로 출력하는 프로그램을 작성하시오.

풀이

1#include <bits/stdc++.h> 2using namespace std; 3 4#define ios cin.tie(NULL), ios_base::sync_with_stdio(false) 5#define endl '\n' 6 7int foo(char ch) { 8 if(ch >= 'A' && ch <= 'F') { return ch - 55; } 9 else { return ch-'0'; } 10} 11 12int main(){ 13 ios; 14 string base16; 15 cin >> base16; 16 int base10 = 0; 17 int p = 0; 18 for(int i=base16.size()-1; i>=0; --i) { 19 int v = foo(base16[i]); 20 base10 += v * pow(16, p); 21 ++p; 22 } 23 cout << base10 << endl; 24 return 0; 25}

시간 복잡도

  • 최종 시간 복잡도: O(S), S = 16진수 길이

공간 복잡도

  • 최종 공간 복잡도: O(1)