[백준 C++] 1212. 8진수 2진수

garden.97·2022년 1월 3일
0

백준 C++

목록 보기
20/28
post-thumbnail

문제 링크

문제

8진수가 주어졌을 때, 2진수로 변환하는 프로그램을 작성하시오.


입력

첫째 줄에 8진수가 주어진다. 주어지는 수의 길이는 333,334을 넘지 않는다.


출력

첫째 줄에 주어진 수를 2진수로 변환하여 출력한다. 수가 0인 경우를 제외하고는 반드시 1로 시작해야 한다.


예제 입력 / 출력

// 예제 입력 1
314
// 예제 출력 1
11001100

풀이

📍 알고리즘

  • 8진수를 2진수를 변환하는 방법은 8진수 한 자리를 2진수 세자리로 변환해 나열하면 된다.

Ex.

	314 ➡ 3(011) 1(001) 4(100) ➡ 11001100
✨ 주의
- 8진수를 2진수로 변환했을 때 맨 앞자리는 0으로 시작하면 안되기 때문에 0으로 시작하면 1이 나올때까지 0을 지워줘야 한다

  • 8진수인 0~7까지의 수를 미리 2진수로 변환해 배열에 할당해놓은 다음 맞는 숫자를 꺼내쓰면 된다.
  • 맨 앞 숫자가 0으로 시작하는 경우만 예외처리 해준다.

#include <iostream>
#include <string>

using namespace std;

int main(void) {

	string eight;
	string two[8] = { "000", "001", "010", "011", "100", "101", "110", "111" };
	int temp;

	cin >> eight;

	for (int i = 0; i < eight.length(); i++) {

		temp = eight[i] - '0';
		if (i == 0) cout << stoi(two[temp]);
		else cout << two[temp];
	}
}

profile
who wants to become a backend developer💪👩‍💻

0개의 댓글