숨막히는 알고말고/문제 풀이
[Baekjoon] 2진수 8진수
숨숨숨
2021. 3. 10. 22:19
👀 문제 설명
2진수가 주어졌을 때, 8진수로 변환하는 프로그램을 작성하시오.
입력
첫째 줄에 2진수가 주어진다. 주어지는 수의 길이는 1,000,000을 넘지 않는다.
출력
첫째 줄에 주어진 수를 8진수로 변환하여 출력한다.
예제 입력 1
11001100
예제 출력 1
314
✍🏻풀이
2진수를 8진수로 바꾸려면 뒤에서부터 3개씩 묶으면 된다.
코드
#include <stdio.h>
#include <iostream>
using namespace std;
int main() {
ios::sync_with_stdio(0);
cin.tie(NULL); cout.tie(NULL);
string str;
cin >> str;
int leng = str.length();
if (leng % 3 == 1) {
cout << str[0];
}
else if (leng % 3 == 2) {
cout << (str[0] - '0') * 2 + (str[1] - '0');
}
for (int i = leng % 3; i < leng; i+= 3) {
cout << (str[i] - '0') * 4 + (str[i + 1] - '0') * 2 + (str[i + 2] - '0');
}
cout << "\n";
return 0;
}