CWN(CHANGE WITH NEWS) - 알고리즘, 프로그래밍에 중요한 이유는?

  • 맑음속초-7.2℃
  • 흐림강진군-4.0℃
  • 흐림밀양-4.5℃
  • 흐림세종-8.7℃
  • 맑음충주-10.5℃
  • 흐림김해시-3.8℃
  • 맑음영주-9.6℃
  • 흐림제주2.0℃
  • 맑음서청주-9.4℃
  • 흐림영천-7.3℃
  • 구름조금대구-6.3℃
  • 흐림창원-4.0℃
  • 맑음금산-8.3℃
  • 맑음파주-15.8℃
  • 맑음동해-5.0℃
  • 맑음제천-11.3℃
  • 흐림천안-8.6℃
  • 흐림추풍령-9.5℃
  • 맑음이천-10.5℃
  • 맑음서울-11.8℃
  • 흐림서산-7.0℃
  • 맑음정선군-11.4℃
  • 구름많음백령도-8.4℃
  • 맑음대관령-15.2℃
  • 흐림순천-6.9℃
  • 흐림고창-6.5℃
  • 맑음울진-6.3℃
  • 구름많음완도-2.9℃
  • 흐림태백-13.7℃
  • 맑음산청-6.2℃
  • 구름많음고흥-4.3℃
  • 구름많음영덕-6.9℃
  • 맑음상주-8.7℃
  • 구름조금서귀포1.9℃
  • 흐림동두천-14.0℃
  • 흐림북창원-3.5℃
  • 흐림의령군-5.2℃
  • 맑음순창군-6.4℃
  • 맑음임실-8.2℃
  • 눈홍성-6.8℃
  • 맑음봉화-13.3℃
  • 흐림철원-18.0℃
  • 맑음광주-6.3℃
  • 흐림울산-4.7℃
  • 흐림양산시-1.2℃
  • 맑음원주-11.1℃
  • 구름많음광양시-4.8℃
  • 맑음구미-7.8℃
  • 구름많음성산0.7℃
  • 흐림인제-15.4℃
  • 흐림북부산-2.4℃
  • 맑음거창-9.5℃
  • 맑음홍천-13.7℃
  • 흐림부안-5.6℃
  • 눈울릉도-2.0℃
  • 맑음북강릉-8.2℃
  • 흐림남해-2.3℃
  • 구름조금합천-4.9℃
  • 구름많음여수-4.6℃
  • 눈목포-3.8℃
  • 맑음청송군-10.1℃
  • 흐림보은-9.3℃
  • 맑음함양군-6.7℃
  • 구름많음부산-2.7℃
  • 맑음춘천-14.3℃
  • 맑음남원-8.5℃
  • 맑음영월-13.0℃
  • 흐림해남-3.7℃
  • 흐림군산-7.3℃
  • 눈대전-8.7℃
  • 구름조금전주-8.7℃
  • 흐림진주-4.1℃
  • 흐림고산2.4℃
  • 맑음문경-9.2℃
  • 흐림영광군-6.4℃
  • 맑음장흥-4.7℃
  • 흐림고창군-6.4℃
  • 구름조금정읍-6.8℃
  • 맑음북춘천-16.0℃
  • 흐림진도군-1.9℃
  • 흐림보령-6.2℃
  • 맑음강화-11.8℃
  • 흐림통영-2.2℃
  • 맑음청주-8.9℃
  • 구름많음포항-5.1℃
  • 흐림경주시-6.0℃
  • 맑음안동-9.4℃
  • 구름많음보성군-4.2℃
  • 맑음부여-8.9℃
  • 맑음강릉-6.3℃
  • 맑음양평-10.3℃
  • 맑음수원-10.8℃
  • 흐림장수-9.5℃
  • 맑음인천-10.4℃
  • 맑음의성-12.2℃
  • 눈흑산도-0.6℃
  • 2026.01.21 (수)

알고리즘, 프로그래밍에 중요한 이유는?

김영록 / 기사승인 : 2021-03-19 00:41:00
  • -
  • +
  • 인쇄

스기우라 켄의 저서 『그림으로 배우는 알고리즘』은 컴퓨터의 프로그래밍 실행 과정을 다음과 같이 설명한다.

우리가 라면을 끓인다고 가정해 보자. 그러면 우리의 뇌 속에서는 "냄비에 물을 넣고, 물을 끓이고, 물이 끓으면 면과 수프를 넣고 5분 정도 기다린다"라고 생각한다.

컴퓨터도 똑같다. 컴퓨터가 어떤 문제를 해결하기 원한다면 사용자가 컴퓨터에게 문제를 어떻게 처리해야 하는지에 대한 방법을 프로그래밍을 통해 적용시켜 주어야 한다. 여기서 문제 해결 과정을 '알고리즘'이라고 표현한다.

알고리즘은 프로그래밍을 하는 데 있어서 굉장히 중요한 요소로 작용한다. 왜냐하면 어떤 알고리즘을 사용하느냐에 따라서 굉장히 효율적인 프로그램을 개발할 수도 있고, 비효율적이고 느린 프로그램을 개발할 수도 있기 때문이다.

쉬운 예시로 다음 리스트에 있는 자료 중에 숫자 8이 몇 번째 리스트에 있는지 확인해 보고 싶다고 하자.

1

2

3

4

5

6

7

8

9

10

0번째

1번째

2번째

3번째

4번째

5번째

6번째

7번째

8번째

9번째

아마 제일 먼저 0번째 리스트 내용부터 하나하나씩 찾고자 하는 수와 대조시키는 방법을 생각해낼 것이다. 이때, 컴퓨터는 총 8번의 탐색 끝에 숫자 8이 몇 번째 리스트에 있는지 찾을 수 있을 것이다.

그렇다면, 아래와 같은 방법은 어떨까?

1

2

3

4

5

6

7

8

9

10

0번째

1번째

2번째

3번째

4번째

5번째

6번째

7번째

8번째

9번째

먼저 리스트의 중간 지점에 있는 숫자와 찾고자 하는 숫자를 비교한다.

8은 5보다는 크므로 적어도 0번째에서 ~ 4번째 리스트에 위치한 숫자들은 볼 필요가 없다.

6

7

8

9

10

5번째

6번째

7번째

8번째

9번째

그다음 5번째에서 9번째 위치의 중간 지점인 7번째 리스트의 숫자를 비교한다. 이번에는 찾고자 하는 숫자와 일치함으로 탐색을 끝낸다.

앞서 언급한 바와 같이 처음부터 하나하나 다 탐색하는 알고리즘은 ‘선형 탐색’, 리스트를 반씩 쪼개가면서 탐색하는 알고리즘은 ‘이진 탐색’이다.

선형 탐색 알고리즘을 사용했을 때는 8번 만에 찾았지만, 이진 탐색 알고리즘을 사용했을 때는 단 2번 만에 찾을 수 있었다.

이처럼 사용하는 알고리즘의 종류에 따라 계산량과 시간이 차이가 난다는 것을 알 수 있었다.

즉, 알고리즘을 제대로 파악해야 메모리 사용량을 줄이면서 훨씬 더 빠른 속도를 구현하는 프로그램을 개발할 수 있다. 따라서 IT 분야 진출을 꿈꾸는 독자에게 알고리즘을 학습할 것을 권장한다.

[저작권자ⓒ CWN(CHANGE WITH NEWS). 무단전재-재배포 금지]

최신기사

뉴스댓글 >

- 띄어 쓰기를 포함하여 250자 이내로 써주세요.
- 건전한 토론문화를 위해, 타인에게 불쾌감을 주는 욕설/비방/허위/명예훼손/도배 등의 댓글은 표시가 제한됩니다.

댓글 0

Today

Hot Issue