Notice
Recent Posts
Recent Comments
Link
알고리즘 모음(C++)
백준 1373 - 2진수 8진수(C++) 본문
문제 링크입니다. https://www.acmicpc.net/problem/1373
2진수를 8진수로 만드는 방법은 뒤에서부터 3개씩 끊어서 변경해주면 됩니다.
예를 들어 11001100의 경우 11 / 001 / 100 으로 나누어 각각 3 , 1 , 4로 만든 뒤, 이를 합쳐주는 과정입니다.
자세한 것은 코드를 참고해주세요
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <string>
#include <cstring>
#include <cmath>
#include <map>
#include <vector>
using namespace std;
string x, y, ans;
int main(){
cin.tie(0);
cout.tie(0);
cin >> x;
for(int i = x.size() - 1; i >= 0; i--){
y += x[i];
if(y.size() == 3){
int sum = 0;
for(int j = 0; j < 3; j++){
if(y[j] == '1') sum += pow(2, j);
}
ans += sum + '0';
y = "";
}
}
if(y.size() > 0){
int sum = 0;
for(int j = 0; j < y.size(); j++){
if(y[j] == '1') sum += pow(2, j);
}
ans += sum + '0';
}
reverse(ans.begin(), ans.end());
cout << ans;
return 0;
}
질문 및 조언은 댓글을 남겨주세요
'백준' 카테고리의 다른 글
백준 2745 - 진법 변환(C++) (0) | 2023.07.02 |
---|---|
백준 1439 - 뒤집기(C++) (0) | 2023.07.02 |
백준 14425 - 문자열 집합(C++) (0) | 2023.07.02 |
백준 25501 - 재귀의 귀재(C++) (0) | 2023.06.18 |
백준 12904 - A와 B(C++) (0) | 2023.06.18 |