- 알고리즘을 공부하는 이유
같은 문제를 풀더라도 더 시간적으로/공간적으로 효율적인 방법을 쓰기 위해서.
- 알고리즘의 타겟 두 가지
1. 시간 복잡도
시간 복잡도를 낮춰 연산 횟수를 최대한 줄이자.
2. 공간 복잡도
사용하는 메모리를 줄이자.
=> 어떻게 하면 시간 복잡도/공간 복잡도를 줄이며 문제를 해결할 수 있을까? 가 알고리즘을 공부하는 이유라고 할 수 있겠다.
- 그렇다면 좋은 알고리즘이란 ?
1. 입력값이 늘어나도 걸리는 시간이 덜 늘어나는 알고리즘
2. 입력값이 늘어나도 걸리는 공간이 덜 늘어나는 알고리즘
- 기억해야 할 것
1. 입력값에 비례해서 얼마나 늘어날지 파악해보자. 1? N? N제곱?
2. 공간 복잡도 보다는 시간 복잡도를 더 줄이기 위해 고민하자.
3. 최악의 경우에 시간이 얼마나 소요될지 (=빅오 표기법)에 대해 고민하자.
부트캠프에서 알고리즘을 들을 땐 제대로 이해 할 겨를도 없이 획 - 지나가 버려서, 사실 알고리즘에 대해 잘 알고있다 라고 하기엔 부끄러운 부분이 없지 않아 있었다.
개발 스택/기술들과는 별개로 알고리즘 빠삭히 공부해서 실제 코딩할 때도 코더처럼이 아닌 .. 여러 효율성을 제대로 고려하면서 코딩할 수 있는 개발자가 되고 싶다.
파이팅!
2024.1월 비장한 각오를 담아 쓴 내 기록
'Algorithm' 카테고리의 다른 글
[TIL][자료구조] 그래프의 개념과 표현 방법 (2) | 2024.12.02 |
---|---|
[TIL][Algorithm] 다익스트라 알고리즘과 그 구현 (3) | 2024.03.29 |