백준 algorithm
백준 1373 - 2진수 8진수
cosmohoo
2020. 3. 26. 20:21
반응형
=> 수의길이가 1000000 이므로 실제수로는 구현할 수 없다.
=> 11, 001, 100 의 예시를 들어보자
=> 3, 1, 4
=> 위와 같이 뒤에서부터 3개씩 나누어 수를 8진수로 변환할 수 있다.
=> 4의 자리, 2의 자리, 1의 자리를 차례대로 곱하고 더하여 출력한다.
***
string에 있는 숫자를 실제 숫자로 print하기 위해서 '0' 을 빼주고 계산한다.
#include <iostream>
#include <string>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
string S;
cin >> S;
int len = S.length();
if(len%3 == 1)
{
cout << S[0];
}
else if(len % 3 == 2)
{
cout << (( S[0]-'0') * 2 ) + ((S[1] - '0') *1) ;
}
for( int i = len %3; i< len; i=i+3)
{
cout << ((S[i]-'0') * 4) + (( S[i+1]-'0') * 2 )+ ( (S[i+2] - '0') *1);
}
return 0;
}
반응형