-
반응형
1212번: 8진수 2진수
첫째 줄에 8진수가 주어진다. 주어지는 수의 길이는 333,334을 넘지 않는다.
www.acmicpc.net
8진수를 2진수로 변환하는 과정이 8진수->10진수->2진수 이방법이 있고, 8진수->2진수 바로 가는 방법이있는데, 2번째 방법을 택했다.
8진수 3 1 2를 2진수로 표현하자면 011 001 010 => 011001010이 된다. 앞자리의 0을 없애주고, 0을 입력했을때 0이되게끔 예외처리를 해주면 문제는 해결된다.
#define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<cstring> #include<string> #include<algorithm> #include<vector> using namespace std; string binary[8] = { "000","001","010","011","100","101","110","111" }; string result = ""; int main() { string e; cin >> e; for (int i = 0; i < e.size();i++) { result += binary[e.at(i) - '0']; } //거꾸로돌린뒤, 처음 1이나올때까지 0을 제거 //0을 입력시 000이되므로, 모두 삭제가 되면 출력이되지않기때문에 1개는 남겨둔다. reverse(result.begin(), result.end()); while (result.back() == '0'&&result.size()>1) { result.pop_back(); } reverse(result.begin(), result.end()); cout << result; }
반응형'문제풀이 > 백준oj' 카테고리의 다른 글
[백준oj] 1063번 킹 (0) 2020.11.11 [백준oj] 1010번 다리놓기 (0) 2020.11.11 [백준oj] 2420번 사파리월드 (0) 2020.11.05 [백준oj] 1297번 TV 크기 (0) 2020.11.05 [백준oj]1002번 터렛 (0) 2020.04.23 댓글