티스토리 뷰

- 프로그램은 자료구조와 알고리즘으로 이루어져있다.

 

● 자료구조

- 자료구조는 데이터가 어떤 구조로 저장되고 어떻게 사용되는지를 나타낸다.

- 흔히 사용하는 변수, 배열도 사실은 수 많은 자료구조 중 하나이다.

- 성적의 평균을 구하는 코드를 작성한다고 했을 때 아래와 같이 할 수 있다.(왼쪽이 변수, 오른쪽이 배열을 사용했을 때)

유지보수 측면에서는 당연히 오른쪽 코드가 더 좋다.

- 데이터를 변수에 저장하냐 배열에 저장하냐에 따라 처리 방법이 달라진다. 변수와 배열이 저장된 모양도 다르고 사용 방법도 다르기 때문이다.

- 즉, 자료구조에 따라서 처리 방법이 달라지는 것이다.

 

 알고리즘(자료구조가 바뀌면 알고리즘도 달라진다.)

- 어떤 문제를 해결하기 위한 확실한 방법

- 평균을 구하라는 과제가 주어졌을 때 떠오르는 해결 방법은 무수히 많을 것이다.

- 그 수 많은 방법 중 가장 정확하게 평균을 구하기 위한 확실한 방법, 즉 알고리즘이 필요하다.(구체적이고 확실한 방법이 필요)

ex) 가령 아래와 같은 방식으로 알고리즘을 생각해 볼 수 있다.

1. 변수 3개가 주어졌을 때 : 3개의 변수를 모두 합한 후 3으로 나눈다.
2. 점수가 담긴 배열이 주어졌을 때 : 배열의 모든 원소를 합한 후 배열의 길이로 나눈다.

- 위와 같은 확실한 방법(알고리즘) 없이 주먹구구식으로 구한다면 그 주먹구구 방식은 알고리즘이라고 할 수 없다.

- 방법이 모호하기에 확실한 평균을 구할 수 있다는 보장이 없기 때문이다.

 

- 한편, 아래의 사진에서 볼 수 있듯이 주어진 데이터가 어떠한 자료구조를 하고 있느냐에 따라 평균을 구하는 방식(알고리즘)도 달라짐을 확인할 수 있다.

- 즉, 자료구조에 따라서 알고리즘도 달라지는 것이다.

출처 - 인프런, 그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)

- 이처럼 알고리즘은 자료구조에 많은 영향을 받는다. 그래서 자료구조와 알고리즘이 항상 같이 언급되는 것이다.

- 또한 아래와 같이 하나의 자료구조에 대해서도 여러가지 방식의 알고리즘을 구현할 수 있다.

출처 - 인프런, 그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)

- 배열이라는 한 가지 자료구조에 대해서도 여러가지 방식의 알고리즘을 생각할 수 있다.(당연히 왼쪽이 더 좋다.)

- 프로그래밍을 할 때 어떠한 자료구조를 선택해 데이터를 저장하고 사용할지 결정하며 이에 맞는 알고리즘을 구현해 데이터를 가공하고 원하는 결과를 얻는 것이다.

- 프로그래머는 상황에 맞는 최적의 자료구조를 선택하고 그것을 이용해 가장 효율적이고 정확한 알고리즘을 구현할 수 있어야한다.(말이 쉽지)

 

※ 정리 : 알고리즘은 자료구조에 따라 달라지며 같은 자료구조 대해서도 여러가지 방식의 알고리즘을 구현할 수 있다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
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
글 보관함