-
[JS 알고리즘&자료구조] Big O 표기법 소개JavaScript/Basic 2023. 10. 23. 23:51
1. Big O 표기법의 필요성
어떤 주제에 대해서 수십개의 해결법이 존재한다. 매개변수와 이름이 다른 수준을 떠나 아예 접근 방식 자체가 다르다. 어떤 것이 가장 좋은 방법인지 알아내는 방법이 존재할까? 이것이 Big O의 핵심이다. Big O는 여러가지 코드를 서로 비교하고 성능을 표기하는 시스템이다.2. Big O 표기법이란?
위에서 말했듯이 Big O는 여러가지 코드를 서로 비교하고 성능을 표기하는 시스템이다. Big O 표기법을 통해 우리는 숫자로 코드의 성능을 표기할 수 있다.3. 코드의 성능이 그렇게 중요한가?
누군가는 코드의 성능보다는 제대로 작동하는 게 더 중요하다고 말할 수도 있다. 사실 때에 따라서는 제대로 작동하는 게 가장 중요하기도 하다. 하지만 면접을 보거나, 코딩 테스트를 보거나 혹은 수천개의 데이터를 다루는 대기업에서 일하게 됐을 때 하나의 알고리즘이 다른 알고리즘보다 결과가 나오는 데 1시간이 덜 소모된다고 하면 성능은 굉장히 중요해진다.
하나의 문제에 대한 각 해결 방법들은 항상 장단점이 있어서, 어떤 것이 최고라고 말하기에는 애매하다. 그러나 문제에 대해 더 나은 해답을 찾아가는 과정은 필수적이다.
그리고 디버깅을 할 때 어떤 부분이 응답을 지연시키는지 알아내는 것 또한 중요하다. 에러를 찾아내는 것과 더불어 결과가 나오는 과정에서 어떤 부분에서 지연이 발생하는지를 알아내는 데에 있어 Big O는 굉장히 유용하다.
마지막으로 면접에 자주 나온다 🤣 "이 알고리즘의 Big O 표기법을 말씀해주세요", "3가지의 함수 중 어떤 것이 Big O 인가요?" 등의 질문이 나온다면 답변을 할 수 있어야 한다.'JavaScript > Basic' 카테고리의 다른 글
[JS 알고리즘&자료구조] Big O 표현식의 단순화 (2) 2023.10.26 [JS 알고리즘&자료구조] Big O에 대한 공식 소개 (1) 2023.10.26 [JS 알고리즘&자료구조] 시간 복잡도 시각화하기 (0) 2023.10.25 [JS 알고리즘&자료구조] 연산 갯수 새기 (0) 2023.10.25 [JS 알고리즘&자료구조] 코드 시간 재기 (1) 2023.10.24