No Rules Rules

2진수 8진수 (feat. 백준, 1373번) 본문

생활/코테

2진수 8진수 (feat. 백준, 1373번)

개발하는 완두콩 2023. 4. 21. 12:54
728x90
반응형

2진수 8진수
https://www.acmicpc.net/problem/1373

 

1373번: 2진수 8진수

첫째 줄에 2진수가 주어진다. 주어지는 수의 길이는 1,000,000을 넘지 않는다.

www.acmicpc.net

 

// woohyeon.kim
// kim519620.tistory.com
#include <iostream>
#include <string>
using namespace std;
int main() {
	ios::sync_with_stdio(false), cin.tie(NULL);
    string str;
    cin >> str;
    while(str.size() % 3 != 0)
        str = '0' + str;
    for(register int i = 0, v; i < str.size(); i += 3)
        v = static_cast<int>(str.at(i) - '0') * 4 + static_cast<int>(str.at(i + 1) - '0') * 2 + static_cast<int>(str.at(i + 2) - '0') * 1, cout << v;
    return 0;
}
// *&)*@*

 

반응형

2진수 3자리는 8진수로 표현됩니다. (100 -> 1 * 4 + 0 * 2 + 0 * 1 -> 4, 16진수면 4개)

이를 활용하여 풀이할 수 있습니다.

단, 계산된 값을 string에 삽입한 뒤 string을 출력하는 방식은 시간 초과 판정을 받으므로 주의해야 합니다.

728x90
반응형
Comments