SlideShare ist ein Scribd-Unternehmen logo
1 von 7
A2 Project 보고서



           조장 04이성욱
           조원 11성주희
              09김창헌
              09김성현
날짜                                       토의 내용
          *조원별 업무 분담.

                 역할 분담                                팀원
                자료조사 및 이해             09 김창헌 09김성현

                      코딩              04 이성욱

                      보고서             11 성주희

          *이번 프로젝트를 할 때 전체적인 일정을 정함
6/11(월)
                 월             화            수               월       화
                11일           12일          13일             18일     19일
           - 조원별 업무 분담 및
           계획 작성           - 자료조사 및 이해
           - 프로젝트 문제파악     - 알고리즘에 대해
                                                                 - 프로그램 검토
           - 프로젝트에 필요한                         - 프로그램 및 보고서 작성
                           토의하고 이해                               - 최종보고서 완성
           학습내용 토의
           - 프로젝트 진행방향     - 문제점 토의
           토의




          *프로젝트에 필요한 학습내용 토의.
          *프로젝트 진행방향 토의
          *자료를 조사한 것을 공유하고 꼼꼼히 공부를 하고 토의함.
          -== 허프만 부호화
          허프만 부호와의 기본 개념은 각 단위 정보를 표현하는 비트 수를 단위 정보
          들의 출현 빈도를 기반으로 할당하는 것임.
          빈도가 높은 정보는 적은 비트 수를 사용하여 표현하고, 빈도가 낮은 정보는
          비트 수를 많이 사용하여 표현해서 전체 데이터의 표현에 필요한 비트의 양을
          줄임.




6/12(화)




6/13(수)
          *프로그램 작성 및 보고서 작성.
6/18(월)

          *프로그램 검토 및 중간보고서 완성
6/19(화)
          - 프로그램 참조.
최종 프로그램
#include<stdio.h>


int main()
{
        int count=0,i,j,checkcount=0,Inputcount=0,numtemp,x=0,huffc=0,huf,inum,k,h,huffb,m;
        char InputString[100];
        char str[100];
        int bin[100];
        int huffman[100][100];
        int Countarr[500];
        char huffmanc[100][100];
        char ch,chtemp;


        for(i=0;i<100;i++)
        {
                Countarr[i]=0;
        }


        printf("입력 : ");
        for(;;)//입력
        {
                ch=getchar();
                if(ch == 'n') break;


                for(i=0;i<=Inputcount;i++)
                {
                           if(ch == InputString[i])//빈도수 조사
                           {
                                   Countarr[i]++;
                                   checkcount=1;
                           }
                }
                if(checkcount==0)
                {
                           InputString[Inputcount]=ch;
                           Countarr[Inputcount]++;
                           Inputcount++;
                }
                str[count]=ch;
                checkcount=0;
                count++;
        }
printf("이진수 : ");



for(i=0;i<count;i++)//이진수
{
          for(j=7;j>=0;j--)
    {
                  printf("%d", str[i]& (1 << j) ? 1:0);
    }


}
printf("n");



for(i=0;i<Inputcount-1;i++) // 빈도수를 내림차순으로 다시정렬
{
            for(j=i+1;j<Inputcount;j++)
            {
                     if(Countarr[i] < Countarr[j])
                     {
                              chtemp=InputString[i];
                              InputString[i]=InputString[j];
                              InputString[j]=chtemp;
                              numtemp=Countarr[i];
                              Countarr[i]=Countarr[j];
                              Countarr[j]=numtemp;
                     }
            }
}


for(i=0;i<Inputcount;i++)
{
            huffman[0][i]=Countarr[i];
            huffmanc[0][i]=InputString[i];
}
huf=Inputcount-1;




for(;;)
{
            huffman[huffc+1][huf-1]=huffman[huffc][huf]+huffman[huffc][huf-1];
for(i=huf-2;i>=0;i--)// 한단계 올림
        {
                   huffman[huffc+1][i]=huffman[huffc][i];
                   huffman[huffc][i]=0;
        }
        huffman[huffc][0]=huffman[huffc][huf-1];
        huffman[huffc][1]=huffman[huffc][huf];




        for(i=0;i<huf;i++) // 빈도수를 내림차순으로 다시정렬
        {
                   for(j=i+1;j<huf-1;j++)
                   {
                           if(huffman[huffc+1][i] < huffman[huffc+1][j])
                           {
                                    numtemp=huffman[huffc+1][i];
                                    huffman[huffc+1][i]=huffman[huffc+1][j];
                                    huffman[huffc+1][j]=numtemp;


                           }
                   }
        }


        huf--;
        huffc++;
        if(huf==1) break;


}



for(i=0;i<100;i++)
{
        bin[i]=3;
}
x=0;
huffb=huffc;



for(i=0;i<count;i++)
{
for(j=0;j<Inputcount;j++)
{
        if(str[i]==InputString[j])
        {
                 inum=Countarr[j];
                 break;
        }
}




if(inum==huffman[0][0])
{
        bin[x]=0;
        x++;
        m=1;
}
else if(inum==huffman[0][1])
{
        bin[x]=1;
        x++;
        m=1;
}


for(k=1;k<=huffc;k++)
{
        if(m==1)
        {
                 if(huffman[k][0]==huffman[k-1][0]+huffman[k-1][1])
                 {
                            bin[x]=0;
                 }
                 else bin[x]=1;
                 x++;
        }
        else if(inum==huffman[k][0])
        {
                 bin[x]=0;
                 x++;
                 m=1;
        }
        else if(inum==huffman[k][1])
{
                              bin[x]=1;
                              x++;
                              m=1;
                      }


            }


            for(h=x-1;h>=0;h--)
            {
                      printf("%d" , bin[h]);
            }
            printf(" ");


            x=0;
            m=0;


    }


    return 0;
}

Weitere ähnliche Inhalte

Was ist angesagt?

2012 Dm C2 05
2012 Dm C2 052012 Dm C2 05
2012 Dm C2 05seonhyung
 
Project#1 지식 기반 시스템 Hwp
Project#1 지식 기반 시스템 HwpProject#1 지식 기반 시스템 Hwp
Project#1 지식 기반 시스템 HwpKimjeongmoo
 
[한양대 aloha] 프로그래밍 경진대회 문제 풀이_Beginner part
[한양대 aloha] 프로그래밍 경진대회 문제 풀이_Beginner part[한양대 aloha] 프로그래밍 경진대회 문제 풀이_Beginner part
[한양대 aloha] 프로그래밍 경진대회 문제 풀이_Beginner partNAVER D2
 
이산수학 C1 프로젝트 3
이산수학 C1 프로젝트 3이산수학 C1 프로젝트 3
이산수학 C1 프로젝트 3pkok15
 
RNC C++ lecture_2 operator, if
RNC C++ lecture_2 operator, ifRNC C++ lecture_2 operator, if
RNC C++ lecture_2 operator, ifitlockit
 
RNC C++ lecture_5 Array
RNC C++ lecture_5 ArrayRNC C++ lecture_5 Array
RNC C++ lecture_5 Arrayitlockit
 
Insert Sort Algorithm (삽입 정렬 알고리즘)
Insert Sort Algorithm (삽입 정렬 알고리즘)Insert Sort Algorithm (삽입 정렬 알고리즘)
Insert Sort Algorithm (삽입 정렬 알고리즘)Junyeong Choi
 
2012 Ds D0 01 Pdf
2012 Ds D0 01 Pdf2012 Ds D0 01 Pdf
2012 Ds D0 01 Pdfkd19h
 
2012 Dm A0 04 Pdf
2012 Dm A0 04 Pdf2012 Dm A0 04 Pdf
2012 Dm A0 04 Pdfkd19h
 
2012 Ds B1 01
2012 Ds B1 012012 Ds B1 01
2012 Ds B1 01seonhyung
 
[명우니닷컴]S key 인증과정
[명우니닷컴]S key 인증과정[명우니닷컴]S key 인증과정
[명우니닷컴]S key 인증과정Myeongun Ryu
 
이산수학 C1 프로젝트 7
이산수학 C1 프로젝트 7이산수학 C1 프로젝트 7
이산수학 C1 프로젝트 7pkok15
 
DP Optimization
DP OptimizationDP Optimization
DP Optimization승혁 조
 
Project#5 통신망에서 길 찾기 Hwp
Project#5 통신망에서 길 찾기 HwpProject#5 통신망에서 길 찾기 Hwp
Project#5 통신망에서 길 찾기 HwpKimjeongmoo
 
5통신망에서 길 찾기
5통신망에서 길 찾기5통신망에서 길 찾기
5통신망에서 길 찾기herojoon1378
 

Was ist angesagt? (19)

이산수학06
이산수학06이산수학06
이산수학06
 
2012 Dm C2 05
2012 Dm C2 052012 Dm C2 05
2012 Dm C2 05
 
Project#1 지식 기반 시스템 Hwp
Project#1 지식 기반 시스템 HwpProject#1 지식 기반 시스템 Hwp
Project#1 지식 기반 시스템 Hwp
 
[한양대 aloha] 프로그래밍 경진대회 문제 풀이_Beginner part
[한양대 aloha] 프로그래밍 경진대회 문제 풀이_Beginner part[한양대 aloha] 프로그래밍 경진대회 문제 풀이_Beginner part
[한양대 aloha] 프로그래밍 경진대회 문제 풀이_Beginner part
 
이산수학 C1 프로젝트 3
이산수학 C1 프로젝트 3이산수학 C1 프로젝트 3
이산수학 C1 프로젝트 3
 
RNC C++ lecture_2 operator, if
RNC C++ lecture_2 operator, ifRNC C++ lecture_2 operator, if
RNC C++ lecture_2 operator, if
 
RNC C++ lecture_5 Array
RNC C++ lecture_5 ArrayRNC C++ lecture_5 Array
RNC C++ lecture_5 Array
 
이산수학03
이산수학03이산수학03
이산수학03
 
Insert Sort Algorithm (삽입 정렬 알고리즘)
Insert Sort Algorithm (삽입 정렬 알고리즘)Insert Sort Algorithm (삽입 정렬 알고리즘)
Insert Sort Algorithm (삽입 정렬 알고리즘)
 
2012 Dm 07
2012 Dm 072012 Dm 07
2012 Dm 07
 
2012 Ds D0 01 Pdf
2012 Ds D0 01 Pdf2012 Ds D0 01 Pdf
2012 Ds D0 01 Pdf
 
2012 Dm A0 04 Pdf
2012 Dm A0 04 Pdf2012 Dm A0 04 Pdf
2012 Dm A0 04 Pdf
 
2012 Ds B1 01
2012 Ds B1 012012 Ds B1 01
2012 Ds B1 01
 
이산수학07
이산수학07이산수학07
이산수학07
 
[명우니닷컴]S key 인증과정
[명우니닷컴]S key 인증과정[명우니닷컴]S key 인증과정
[명우니닷컴]S key 인증과정
 
이산수학 C1 프로젝트 7
이산수학 C1 프로젝트 7이산수학 C1 프로젝트 7
이산수학 C1 프로젝트 7
 
DP Optimization
DP OptimizationDP Optimization
DP Optimization
 
Project#5 통신망에서 길 찾기 Hwp
Project#5 통신망에서 길 찾기 HwpProject#5 통신망에서 길 찾기 Hwp
Project#5 통신망에서 길 찾기 Hwp
 
5통신망에서 길 찾기
5통신망에서 길 찾기5통신망에서 길 찾기
5통신망에서 길 찾기
 

Andere mochten auch

자료구조5보고서
자료구조5보고서자료구조5보고서
자료구조5보고서KimChangHoen
 
이산치6보고서
이산치6보고서이산치6보고서
이산치6보고서KimChangHoen
 
자료구조2보고서
자료구조2보고서자료구조2보고서
자료구조2보고서KimChangHoen
 
자료구조4보고서
자료구조4보고서자료구조4보고서
자료구조4보고서KimChangHoen
 
자료구조1보고서
자료구조1보고서자료구조1보고서
자료구조1보고서KimChangHoen
 
자료구조3보고서
자료구조3보고서자료구조3보고서
자료구조3보고서KimChangHoen
 
자료구조6보고서
자료구조6보고서자료구조6보고서
자료구조6보고서KimChangHoen
 
대학연합 칵테일동아리 COCOK 소개서 _ 코콕
대학연합 칵테일동아리 COCOK 소개서 _ 코콕대학연합 칵테일동아리 COCOK 소개서 _ 코콕
대학연합 칵테일동아리 COCOK 소개서 _ 코콕dagym
 
배달의 민족 브랜드 마케팅 이야기 by 우아한형제들 김봉진 대표
배달의 민족 브랜드 마케팅 이야기 by 우아한형제들 김봉진 대표배달의 민족 브랜드 마케팅 이야기 by 우아한형제들 김봉진 대표
배달의 민족 브랜드 마케팅 이야기 by 우아한형제들 김봉진 대표VentureSquare
 

Andere mochten auch (9)

자료구조5보고서
자료구조5보고서자료구조5보고서
자료구조5보고서
 
이산치6보고서
이산치6보고서이산치6보고서
이산치6보고서
 
자료구조2보고서
자료구조2보고서자료구조2보고서
자료구조2보고서
 
자료구조4보고서
자료구조4보고서자료구조4보고서
자료구조4보고서
 
자료구조1보고서
자료구조1보고서자료구조1보고서
자료구조1보고서
 
자료구조3보고서
자료구조3보고서자료구조3보고서
자료구조3보고서
 
자료구조6보고서
자료구조6보고서자료구조6보고서
자료구조6보고서
 
대학연합 칵테일동아리 COCOK 소개서 _ 코콕
대학연합 칵테일동아리 COCOK 소개서 _ 코콕대학연합 칵테일동아리 COCOK 소개서 _ 코콕
대학연합 칵테일동아리 COCOK 소개서 _ 코콕
 
배달의 민족 브랜드 마케팅 이야기 by 우아한형제들 김봉진 대표
배달의 민족 브랜드 마케팅 이야기 by 우아한형제들 김봉진 대표배달의 민족 브랜드 마케팅 이야기 by 우아한형제들 김봉진 대표
배달의 민족 브랜드 마케팅 이야기 by 우아한형제들 김봉진 대표
 

Ähnlich wie 이산치7보고서

2012 Ds A1 05
2012 Ds A1 052012 Ds A1 05
2012 Ds A1 05seonhyung
 
Project#5 최단거리 찾기 D0 Hwp
Project#5 최단거리 찾기 D0 HwpProject#5 최단거리 찾기 D0 Hwp
Project#5 최단거리 찾기 D0 HwpKimjeongmoo
 
2012 Dm A0 02 Pdf
2012 Dm A0 02 Pdf2012 Dm A0 02 Pdf
2012 Dm A0 02 Pdfjinwookhong
 
2012 Dm A0 02 Pdf
2012 Dm A0 02 Pdf2012 Dm A0 02 Pdf
2012 Dm A0 02 Pdfkd19h
 
2012 Ds D0 01
2012 Ds D0 012012 Ds D0 01
2012 Ds D0 01chl132435
 
2012 Ds B2 02 Pdf
2012 Ds B2 02 Pdf2012 Ds B2 02 Pdf
2012 Ds B2 02 Pdfkd19h
 
2012 Ds B2 02
2012 Ds B2 022012 Ds B2 02
2012 Ds B2 02chl132435
 
2012 Dm A0 04 Pdf
2012 Dm A0 04 Pdf2012 Dm A0 04 Pdf
2012 Dm A0 04 Pdfjinwookhong
 
과제 1,2,3
과제 1,2,3과제 1,2,3
과제 1,2,3mil23
 
Project#3 How Fast Can We Sort Hwp
Project#3 How Fast Can We Sort HwpProject#3 How Fast Can We Sort Hwp
Project#3 How Fast Can We Sort HwpKimjeongmoo
 
이산치 과제7
이산치 과제7이산치 과제7
이산치 과제7mil23
 
2012 Dm A0 07 Pdf
2012 Dm A0 07 Pdf2012 Dm A0 07 Pdf
2012 Dm A0 07 Pdfkd19h
 
2012 Dm A0 07 Pdf
2012 Dm A0 07 Pdf2012 Dm A0 07 Pdf
2012 Dm A0 07 Pdfjinwookhong
 
2012 Dm C3 03
2012 Dm C3 032012 Dm C3 03
2012 Dm C3 03chl132435
 

Ähnlich wie 이산치7보고서 (20)

2012 Ds A1 05
2012 Ds A1 052012 Ds A1 05
2012 Ds A1 05
 
Project#5 최단거리 찾기 D0 Hwp
Project#5 최단거리 찾기 D0 HwpProject#5 최단거리 찾기 D0 Hwp
Project#5 최단거리 찾기 D0 Hwp
 
자료구조02
자료구조02자료구조02
자료구조02
 
2012 Dm A0 02 Pdf
2012 Dm A0 02 Pdf2012 Dm A0 02 Pdf
2012 Dm A0 02 Pdf
 
이산치2번
이산치2번이산치2번
이산치2번
 
2012 Dm A0 02 Pdf
2012 Dm A0 02 Pdf2012 Dm A0 02 Pdf
2012 Dm A0 02 Pdf
 
2012 Ds D0 01
2012 Ds D0 012012 Ds D0 01
2012 Ds D0 01
 
이산치1번
이산치1번이산치1번
이산치1번
 
2012 Ds B2 02 Pdf
2012 Ds B2 02 Pdf2012 Ds B2 02 Pdf
2012 Ds B2 02 Pdf
 
2012 Ds B2 02
2012 Ds B2 022012 Ds B2 02
2012 Ds B2 02
 
2012 Dm A0 04 Pdf
2012 Dm A0 04 Pdf2012 Dm A0 04 Pdf
2012 Dm A0 04 Pdf
 
과제 1,2,3
과제 1,2,3과제 1,2,3
과제 1,2,3
 
Project#3 How Fast Can We Sort Hwp
Project#3 How Fast Can We Sort HwpProject#3 How Fast Can We Sort Hwp
Project#3 How Fast Can We Sort Hwp
 
3콤비네이션
3콤비네이션3콤비네이션
3콤비네이션
 
이산치 과제7
이산치 과제7이산치 과제7
이산치 과제7
 
2012 Dm A0 07 Pdf
2012 Dm A0 07 Pdf2012 Dm A0 07 Pdf
2012 Dm A0 07 Pdf
 
2012 Dm A0 07 Pdf
2012 Dm A0 07 Pdf2012 Dm A0 07 Pdf
2012 Dm A0 07 Pdf
 
자구2번
자구2번자구2번
자구2번
 
2012 Dm C3 03
2012 Dm C3 032012 Dm C3 03
2012 Dm C3 03
 
4. loop
4. loop4. loop
4. loop
 

이산치7보고서

  • 1. A2 Project 보고서 조장 04이성욱 조원 11성주희 09김창헌 09김성현
  • 2. 날짜 토의 내용 *조원별 업무 분담. 역할 분담 팀원 자료조사 및 이해 09 김창헌 09김성현 코딩 04 이성욱 보고서 11 성주희 *이번 프로젝트를 할 때 전체적인 일정을 정함 6/11(월) 월 화 수 월 화 11일 12일 13일 18일 19일 - 조원별 업무 분담 및 계획 작성 - 자료조사 및 이해 - 프로젝트 문제파악 - 알고리즘에 대해 - 프로그램 검토 - 프로젝트에 필요한 - 프로그램 및 보고서 작성 토의하고 이해 - 최종보고서 완성 학습내용 토의 - 프로젝트 진행방향 - 문제점 토의 토의 *프로젝트에 필요한 학습내용 토의. *프로젝트 진행방향 토의 *자료를 조사한 것을 공유하고 꼼꼼히 공부를 하고 토의함. -== 허프만 부호화 허프만 부호와의 기본 개념은 각 단위 정보를 표현하는 비트 수를 단위 정보 들의 출현 빈도를 기반으로 할당하는 것임. 빈도가 높은 정보는 적은 비트 수를 사용하여 표현하고, 빈도가 낮은 정보는 비트 수를 많이 사용하여 표현해서 전체 데이터의 표현에 필요한 비트의 양을 줄임. 6/12(화) 6/13(수) *프로그램 작성 및 보고서 작성. 6/18(월) *프로그램 검토 및 중간보고서 완성 6/19(화) - 프로그램 참조.
  • 3. 최종 프로그램 #include<stdio.h> int main() { int count=0,i,j,checkcount=0,Inputcount=0,numtemp,x=0,huffc=0,huf,inum,k,h,huffb,m; char InputString[100]; char str[100]; int bin[100]; int huffman[100][100]; int Countarr[500]; char huffmanc[100][100]; char ch,chtemp; for(i=0;i<100;i++) { Countarr[i]=0; } printf("입력 : "); for(;;)//입력 { ch=getchar(); if(ch == 'n') break; for(i=0;i<=Inputcount;i++) { if(ch == InputString[i])//빈도수 조사 { Countarr[i]++; checkcount=1; } } if(checkcount==0) { InputString[Inputcount]=ch; Countarr[Inputcount]++; Inputcount++; } str[count]=ch; checkcount=0; count++; }
  • 4. printf("이진수 : "); for(i=0;i<count;i++)//이진수 { for(j=7;j>=0;j--) { printf("%d", str[i]& (1 << j) ? 1:0); } } printf("n"); for(i=0;i<Inputcount-1;i++) // 빈도수를 내림차순으로 다시정렬 { for(j=i+1;j<Inputcount;j++) { if(Countarr[i] < Countarr[j]) { chtemp=InputString[i]; InputString[i]=InputString[j]; InputString[j]=chtemp; numtemp=Countarr[i]; Countarr[i]=Countarr[j]; Countarr[j]=numtemp; } } } for(i=0;i<Inputcount;i++) { huffman[0][i]=Countarr[i]; huffmanc[0][i]=InputString[i]; } huf=Inputcount-1; for(;;) { huffman[huffc+1][huf-1]=huffman[huffc][huf]+huffman[huffc][huf-1];
  • 5. for(i=huf-2;i>=0;i--)// 한단계 올림 { huffman[huffc+1][i]=huffman[huffc][i]; huffman[huffc][i]=0; } huffman[huffc][0]=huffman[huffc][huf-1]; huffman[huffc][1]=huffman[huffc][huf]; for(i=0;i<huf;i++) // 빈도수를 내림차순으로 다시정렬 { for(j=i+1;j<huf-1;j++) { if(huffman[huffc+1][i] < huffman[huffc+1][j]) { numtemp=huffman[huffc+1][i]; huffman[huffc+1][i]=huffman[huffc+1][j]; huffman[huffc+1][j]=numtemp; } } } huf--; huffc++; if(huf==1) break; } for(i=0;i<100;i++) { bin[i]=3; } x=0; huffb=huffc; for(i=0;i<count;i++) {
  • 6. for(j=0;j<Inputcount;j++) { if(str[i]==InputString[j]) { inum=Countarr[j]; break; } } if(inum==huffman[0][0]) { bin[x]=0; x++; m=1; } else if(inum==huffman[0][1]) { bin[x]=1; x++; m=1; } for(k=1;k<=huffc;k++) { if(m==1) { if(huffman[k][0]==huffman[k-1][0]+huffman[k-1][1]) { bin[x]=0; } else bin[x]=1; x++; } else if(inum==huffman[k][0]) { bin[x]=0; x++; m=1; } else if(inum==huffman[k][1])
  • 7. { bin[x]=1; x++; m=1; } } for(h=x-1;h>=0;h--) { printf("%d" , bin[h]); } printf(" "); x=0; m=0; } return 0; }