티스토리 뷰



리눅스 실습 시간에 배운 Run-Length Encoding 알고리즘 간단하게 복습


기본적인 개념은 "중복되는 문자를 한 문자로 치환시키는 것" 이다.


예를들면 텍스트 파일의 내용이


" AAABCDDDDDOS " 로 되어있다고 하면


" A3BCD5OS " 로 이렇게 중복되는 문자를 숫자로 치환하는것이다.


하지만 압축을 했으면 복호화의 과정이 필요한데


만약 저렇게 되어있을경우 3이 실제로 입력된 문자인지 치환된 문자인지 구별하기 어렵다는점이


있다.


따라서 치환된부분을 탈출문자 (Escape) 문자를 이용하여 나타낼 수 있다.


" *3ABC*5DOS " 이렇게 *로 나타내는것이다.


그래서 탈출문자로 문자이기때문에 거의 쓰이지않는문자를 쓰는게 중요하다.


코드 예시


그런데 리눅스로 파일크기를 계산해보니


오히려 원본파일보다 크기가 커졌다...


복호화를 하니까 원래크기로 돌아왔긴 하지만 압축의 의미가 없는것같다..










'프로그래밍 > 알고리즘' 카테고리의 다른 글

Run Length Decoding , 압축 복원  (0) 2017.05.20
동적 계획법 (DP)  (0) 2016.08.26
깊이 우선 탐색 (DFS)  (0) 2016.08.26
탐욕법 ( Greedy )  (0) 2016.08.26
백 트래킹 ( Backtracking )  (0) 2016.08.24
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
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
글 보관함