요약: 16진수 캐릭터를 입력 받고 이진수 값을 출력하라.
내가 틀린 점: 입력을 받을시 string() 값으로 받았지만 0~9일시 - '0' 를 뺴는 걸 생각 못 했고 입력이 A~F일시 - 'A' 를 뺴는 걸 생각 못 함.
모범 답안:
#include <iostream>
#include <string>
using namespace std;
int main(){
int temp = 1, result = 0;
string input;
cin >> input;
for (int i = input.length() - 1; i >= 0; i--){
if (input[i] >= '0' && input[i] <= '9')
result += (input[i] - '0') * temp;
else
result += (input[i] - 'A' + 10) * temp;
temp *= 16;
}
cout << result << endl;
return 0;
}
'백준 오답노트 (BOJ) 🚩 > 브론즈 (Bronze) 🥉' 카테고리의 다른 글
< BOJ Bronze V > 1550 : 16진수 (0) | 2022.04.03 |
---|---|
< BOJ - Bronze V > 2475 : 검증수 (0) | 2022.04.03 |
< BOJ - Bronze V > 2338 : 긴자리 계산 (0) | 2021.12.10 |
< BOJ - Bronze V > 1271 (0) | 2021.12.07 |