반응형
https://www.acmicpc.net/problem/1373
1373번: 2진수 8진수
첫째 줄에 2진수가 주어진다. 주어지는 수의 길이는 1,000,000을 넘지 않는다.
www.acmicpc.net
2진수의 세자리당 8진수의 한 자리에 해당합니다. 이를 이용하면 쉽게 푸실 수 있습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | #include <iostream> #include <string> #include <cmath> #include <algorithm> using namespace std; int main() { string k; string mod =""; string ans = ""; cin >> k; int len = k.size(); int cnt = 0; for (int i = len - 1; i >= 0; i--) { mod += k[i]; cnt++; if (cnt == 3 || i == 0) { int sum = 0; for (int j = 0; j < mod.size(); j++) if (mod[j] == '1') sum += pow(2, j); mod = ""; cnt = 0; ans += sum + '0'; } } for (int i = 0; i < ans.size()/2; i++) swap(ans[i], ans[ans.size() - 1 - i]); cout << ans << '\n'; } | cs |
'Algorithm' 카테고리의 다른 글
(C++) - 백준(BOJ) 15969번 : 행복 답 (0) | 2020.01.03 |
---|---|
(C++) - 백준(BOJ) 2846번 : 오르막길 (0) | 2020.01.03 |
(C++) - 백준(BOJ) 9366번 : 삼각형 분류 (0) | 2020.01.01 |
(C++) - 백준(BOJ) 5666번 : 핫도그 (0) | 2020.01.01 |
(C++) - 백준(BOJ) 2991번 : 사나운 개 (1) | 2020.01.01 |