문제

https://www.acmicpc.net/problem/2998
2998번: 8진수
창영이는 여러 가지 진법을 공부하고 있다. 창영이는 어제 2진법을 배웠고, 오늘은 8진법을 배웠다. 이제, 2진법 수를 8진법 수로 변환하려고 한다. 창영이가 사용한 방법은 다음과 같다. 2진수의
www.acmicpc.net
코드
#include <iostream>
#include <string>
using namespace std;
string arr[8] = {"000","001","010","011","100","101","110","111"};
int main(){
string binary;
cin >> binary;
int length= binary.length();
if(length%3!=0){
for(int i=0; i<3-length%3; i++){
binary.insert(0, "0");
}
length+=3-length%3;
}
for(int i=0; i<length; i+=3){
string oct = binary.substr(i,3);
for(int j=0; j<8; j++){
if(oct==arr[j]) cout << j;
}
}
return 0;
}
정리
insert
string& insert (size_t pos, const string& str);
string을 pos위치에 새로운 str을 추가해주는 함수
참조
'Beakjoon > string' 카테고리의 다른 글
| [백준] 9417번 최대 GCD (C++) - substr(), find()를 활용해서 특정 문자 기준으로 자르기, Euclidean algorithm (0) | 2022.09.15 |
|---|---|
| [백준] 1551번 수열의 변화 (C++) - stringstream, split (0) | 2022.06.07 |
| [백준] 2857번 FBI (C++) - str.find() (0) | 2022.03.05 |
| [백준] 11656번 접미사 배열 (C++) - str.substr() (0) | 2022.03.05 |
| [백준] 10809번 알파벳 찾기 (C++) (0) | 2021.12.29 |