Notice
Recent Posts
Recent Comments
Link
알고리즘 모음(C++)
백준 1212 - 8진수 2진수(C++) 본문
문제 링크입니다. https://www.acmicpc.net/problem/1212
8진수를 2진수로 바꾸는 문제입니다,
8진수를 2진수로 바꾸는 방법은 한자리마다 3개의 2진수로 바꾼 뒤, 합쳐주면 됩니다.
314의 경우에는 3, 1, 4로 나눈 뒤, 각각의 2진수를 3자리 구해줍니다.
011, 001, 100이 되는데, 이를 합쳐줍니다. -> 011001100, 여기서 시작이 0이 되면 안되니, 11001100을 출력하면 됩니다.
자세한 것은 코드를 참고해주세요.
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <queue>
#include <vector>
#include <cstring>
#include <cmath>
#include <string>
#include <map>
using namespace std;
string N, two;
int main(){
cin.tie(0);
cout.tie(0);
cin >> N;
for(int i = 0; i < N.size(); i++){
int x = N[i] - '0', cnt = 2;
string xx = "000";
while(1){
if(x == 0) break;
if(x % 2 == 0) xx[cnt] = '0';
else xx[cnt] = '1';
cnt--;
x /= 2;
}
two += xx;
}
if(N == "0") cout << "0";
else{
int flag = 0;
for(int i = 0; i < two.size(); i++){
if(!flag && two[i] == '0') continue;
else{
cout << two[i];
flag = 1;
}
}
}
return 0;
}
질문 및 조언은 댓글을 남겨주세요
'백준' 카테고리의 다른 글
백준 12904 - A와 B(C++) (0) | 2023.06.18 |
---|---|
백준 4358 - 생태학(C++) (0) | 2023.06.18 |
백준 4999 - 아!(C++) (0) | 2023.06.15 |
백준 1120 - 문자열(C++) (0) | 2023.06.11 |
백준 1213 - 펠린드롬 만들기(C++) (0) | 2023.06.11 |