Page 11 -
P. 11

1.2  알고리즘과 코딩



                   컴퓨터 분야를 공부하다 보면 알고리즘이라는 말을 자주 듣게 됩니다. 그런데 알고리즘이 도대
                   체 어디에 쓰이고 있을까요? 사실 눈에 잘 띄지 않아 멀게만 느껴집니다. 하지만 우리는 알고

                   리즘의 혜택을 많이 보고 있는데, 대표적인 알고리즘이 압축 알고리즘입니다.
                   휴대폰이나 카메라로 사진을 찍으면 JPG라는 확장자로 저장되는데, 이 JPG(JPEG)가 압축 알

                   고리즘을 구현한 포맷입니다. 사진을 그대로 저장하면 용량이 너무 커서 저장 공간이 금방 차
                   버리겠지만 압축을 해서 저장하면 사진을 많이 보관할 수 있습니다. 휴대폰이나 카메라를 가진

                   사람들은 모두가 이용하는 알고리즘이죠.

                   압축 알고리즘을 좀 더 알아보겠습니다. 예를 들어 'aaaaabbbccccccddddddddd'라는 문자
                   열을 잘 보면 일정한 패턴이 있습니다. 같은 문자가 여러 번 반복되죠.

                   이걸 다음과 같이 문자 뒤에 반복되는 횟수를 적어주면 원래 데이터보다 길이가 짧아져서 저장

                   공간을 절약할 수 있습니다. 즉, 압축을 하는 것입니다.

                   ▼  그림 1-4 문자열 압축
                         5개      3개        6개              9개

                    aaaaabbbccccccddddddddd


                                         23글자



                                   a5b3c6d9


                                         8글자


                   그림 1-4를 보면 23글자가 8글자로 줄었습니다. 'aaaaabbbccccccddddddddd'를 압축할 때
                   는 반복되는 문자의 횟수를 적어주고, 'a5b3c6d9'의 압축을 해제할 때는 숫자만큼 문자를 반
                   복해주자고 약속하면 됩니다. 생각보다 간단하죠? 컴퓨터에서 쓰이는 압축 알고리즘도 이러한

                   방법을 사용하고 있습니다(이 방식을 RLE(run-length encoding)라고 하며, PCX 그림 파일 포
                   맷에도 쓰였습니다. 요즘은 좀 더 다양한 상황에 대응하고 압축 효율을 높이기 위해 훨씬 복잡

                   한 알고리즘을 사용합니다).










             018  프로그래머를 향한 출발점 COS Pro 2급




         cos 파이썬_07.indd   18                                                                       2018-02-05   오후 4:03:37
   6   7   8   9   10   11   12   13   14   15   16