자료구조, 알고리즘 왜 공부?

이재홍·2024년 3월 14일
0
post-thumbnail

배우는 근본적인 이유

시간은 소중하다.

1부터 천억까지의 합산하는 함수가 있다면?

int findSum() {
  int sum = 0;
  for (int v=1; v<= 100000000000; v++){
    sum +=v;
  }
  return sum;
}

컴퓨터 프로그램에 있어서 가장 귀중한 두 가지 자원은 시간메모리
컴퓨터가 코드를 실행하는 데 걸리는 시간은 다음과 같다

코드 실행시간 = 명령어 수 * 각 명령어 실행시간

하지만 자연수에 합계를 더하는 공식을 적용해서 코드를 변환해보면

int Sum(){
  return N * (N + 1) / 2
}

이 코드 단 하나의 명령으로 실행되고 값에 관계없이 작업을 완료하게 되어서 명령어 수도 줄게 되고 가독성 또한 좋아지게 된다.

이런식으로 소스코드는 명령어에 개수와 시간이 곱셈으로 늘어나기 때문에 이것을 효율적이게 줄이기 위해서 자료구조와 알고리즘을 배운다.

메모리는 비싸다

메모리가 항상 풍부하게 제공되는 것은 아니다. 많은 데이터를 저장하거나 생성해야 하는 코드/ 시스템을 처리하는 동안 알고리즘은 가능한 한 메모리 사용량을 줄이는 것이 중요하다.


Final Words

일반적으로 소프트웨어 개발에는 매일 새로운 기술을 배우는 것이 포함됩니다. 프로젝트 중 하나에서 이러한 기술을 사용하면서 대부분의 기술을 배우게 됩니다. 그러나 알고리즘의 경우에는 그렇지 않습니다.

알고리즘을 잘 모르면 지금 작성하고 있는 코드를 최적화할 수 있는지 식별할 수 없습니다. 이를 미리 알고 가능하고 중요하게 적용하는 것이 좋습니다.

0개의 댓글