본문 바로가기

CS/Algorithm

패스트캠퍼스 챌린지 2일차

[강의] 다음은 패스트 캠퍼스 알고리즘 / 기술면접 완전 정복 올인원 패키지를 통해 학습 및 정리한 내용입니다.

 

1월 25일 오늘의 강의

 

시간 복잡도

오늘은 시간 복잡도에 대해서 알아보았다. 알고리즘에서 복잡도 계산이 필요한 이유는 문제를 풀 경우 필요한 알고리즘이 다양할 수 있기 때문이라고 한다. 문제를 푸는데 정답이 없기 때문에 다양한 알고리즘 중에서 어느 알고리즘이 더 좋은지 분석하고 적합한 알고리즘을 적용해서 복잡도를 낮추는게 관건이다.

 

알고리즘 복잡도 계산 항목은 시간 복잡도와 공간 복잡도로 구성되는데, 시간 복잡도는 알고리즘의 실행 속도이고, 공간 복잡도는 알고리즘이 상용하는 메모리 사이즈를 의미한다. 여기서 가장 중요한 것은 시간 복잡도인데, 하드웨어의 발전으로 공간에 대한 제약이 줄어들었기 때문에 가장 빠르게 실행할 수 있는 시간 복잡도의 중요성이 높아졌다.

 

 

 

 

알고리즘 시간 복잡도에서 주요 요소

반복문이 지배하는데 입력의 크기가 커지면 커질수록 알고리즘의 시간이 많아지는데 이로인해 반복문이 많아질수록 소요시간이 길어진다. 표기법은 크게 세가지가 있는데 주요한 표기법으로는 Big O(빅오) 표기법으로 O(N)으로 알고리즘 중에서 최악의 실행 시간을 표기한다. 최악의 실행시간이란 알고리즘에서 입력 크기에 따라 실행 속도가 달라지는 것처럼 입력 크기가 매우 커서 최악의 시간이 소요되는 것을 의미한다.

 

이 외에도 오메가 표기법은 알고리즘 최상의 실행 시간을 표기하고, 세타 표기법은 알고리즘의 평균 실행 시간을 표기한다. 따라서 우리는 최악의 상황에서도 시간 복잡도를 최소화하는 방향으로 알고리즘을 구현하는게 가장 좋기때문에 Big-O 표기법을 중심으로 익히고 반복문을 줄이는 방향으로 방법을 구체화해나가야할 것이다.

 

https://bit.ly/37BpXiC

 

패스트캠퍼스 [직장인 실무교육]

fastcampus.co.kr

 

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.

'CS > Algorithm' 카테고리의 다른 글

패스트캠퍼스 챌린지 6일차  (0) 2022.01.29
패스트캠퍼스 챌린지 5일차  (0) 2022.01.28
패스트캠퍼스 챌린지 4일차  (0) 2022.01.27
패스트캠퍼스 챌린지 3일차  (0) 2022.01.26
패스트캠퍼스 챌린지 1일차  (0) 2022.01.24