21.10.20 TIL23

서태욱·2021년 10월 20일
0

✔️ 오늘 한 일

  • 알고리즘 공부 시작!
  • 알고리즘의 효율성을 판단하는 기준은 시간복잡도와 공간복잡도가 있다.
    시간복잡도는 문제를 해결하는 데 걸리는 시간을, 공간 복잡도는 문제를 해결하는 데 필요한 공간을 따져서 계산하는 것이다. 시간복잡도는 array(입력값)의 길이를 N이라고 표현했을 때, N의 차수가 커질수록 복잡해진다. 공간복잡도는 저장하는 데이터의 양이 1개의 공간을 사용하며, 수식으로 표현하면 N+10과 같이 표현할 수 있다. 따라서 공간복잡도보다는 시간복잡도를 줄이는 것이 효율적인 알고리즘 설계가 된다.
  • 점근표기법 : 알고리즘의 효율성을 평가하는 방법이며, 최악의 성능을 나타내는 Big-O와 최선의 성능을 나타내는 Big-Ω 표기법이 있다. 최선의 경우느 잘 없고, 주로 최악에 대비하기 위해 Big-O를 많이 사용한다.
  • 정리하면,알고리즘을 구성하면서 입력값에 비례해서 복잡도가 얼마나 늘어나는지를 파악하고, 시간복잡도를 줄이는 데 초점을 맞추고, Big-O(최악의 경우에 시간이 얼마나 소요될까?)를 고민하도록 한다.
  • 2주차 강의에서는 어레이와 링크드리스트에 대해서 배웠다. 어레이는 특정 원소 조회는 쉬우나(O(1)), 중간에 삽입,삭제 하기는 어렵고 (O(N)), 링크드리스트는 삽입과 삭제는 쉬우나(O(1)), 특정 원소를 조회하기는 어렵다(O(N))고 한다.

❗️ 느낀 점

  • 새로운 팀원들을 만나서 일주일 동안 알고리즘에 대해서 공부하게 되었는데, 그동안 잘 지내보아야겠다.
  • 알고리즘은 강의도 강의지만 문제를 많이 다뤄봐야 할 것 같다.
profile
re:START

0개의 댓글