반응형

문제 출처 :


https://www.acmicpc.net/problem/1212



알고리즘 분석 :


문제 해결에 필요한 사항

1. 8진수, 2진수 개념

2. 진법 변환


http://www.crocus.co.kr/468 에 8진수를 2진수로 변환하는 상세한 방법이 나와있다.


이 방식을 코드로 옮기면 다음과 같다.


table을 만들어서 0 ~ 9까지의 2진수 형태를 만들어준다. (0 :: 000 ~ 9 :: 111)


앞에 first를 한번 왜 출력하냐면, 8진수 100같은경우 001 000 000 즉, 1000000인데 


이처럼 첫자리에 0이 나오면 안되기 때문이다.


소스 코드 : 


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
#include <iostream>
#include <string.h>
 
using namespace std;
 
int main()
{
    char eight[333335];
    char first[10][4= { "","1","10","11","100","101","110","111" };
    char table[10][4= { "000","001","010","011","100","101","110","111" };
    int len;
 
    cin >> eight;
 
    len = strlen(eight);
 
    printf("%s", first[eight[0- 48]);
    
    for (int i = 1; i < len; i++)
        printf("%s", table[eight[i] - 48]);
    
    return 0;
}
 
//                                                       This source code Copyright belongs to Crocus
//                                                        If you want to see more? click here >>
Crocus


반응형

'Applied > 알고리즘 문제풀이' 카테고리의 다른 글

[11055번] 가장 큰 증가 부분 수열  (0) 2016.10.28
[9465번] 스티커  (0) 2016.10.28
[2605번] 줄 세우기  (0) 2016.10.28
[2790번] F7  (0) 2016.10.27
[2875번] 대회 or 인턴  (0) 2016.10.24