Algorithm

[Algorithm] 알고리즘 공부를 시작하며 / 알고리즘 개요

쉬지마 이굥진 2024. 1. 3. 10:29
  • 알고리즘을 공부하는 이유

같은 문제를 풀더라도 더 시간적으로/공간적으로 효율적인 방법을 쓰기 위해서.

 

  • 알고리즘의 타겟 두 가지

1. 시간 복잡도

시간 복잡도를 낮춰 연산 횟수를 최대한 줄이자.

 

2.  공간 복잡도

사용하는 메모리를 줄이자.

=> 어떻게 하면 시간 복잡도/공간 복잡도를 줄이며 문제를 해결할 수 있을까? 가 알고리즘을 공부하는 이유라고 할 수 있겠다.

 

  • 그렇다면 좋은 알고리즘이란 ?

1. 입력값이 늘어나도 걸리는 시간이 덜 늘어나는 알고리즘

2. 입력값이 늘어나도 걸리는 공간이 덜 늘어나는 알고리즘

 

  • 기억해야 할 것

1. 입력값에 비례해서 얼마나 늘어날지 파악해보자. 1? N? N제곱?

2. 공간 복잡도 보다는 시간 복잡도를 더 줄이기 위해 고민하자.

3. 최악의 경우에 시간이 얼마나 소요될지 (=빅오 표기법)에 대해 고민하자.


 

부트캠프에서 알고리즘을 들을 땐 제대로 이해 할 겨를도 없이 획 - 지나가 버려서, 사실 알고리즘에 대해 잘 알고있다 라고 하기엔 부끄러운 부분이 없지 않아 있었다.

개발 스택/기술들과는 별개로 알고리즘 빠삭히 공부해서 실제 코딩할 때도 코더처럼이 아닌 .. 여러 효율성을 제대로 고려하면서 코딩할 수 있는 개발자가 되고 싶다.

 

파이팅!

 

2024.1월 비장한 각오를 담아 쓴 내 기록