본문 바로가기

Beakjoon/string

[백준] 2998번 8진수 (C++) - str.insert(), str.substr()

문제

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을 추가해주는 함수

참조

https://m.blog.naver.com/koodaehyon/221596727150

https://kdongree.tistory.com/70