전체 글149 [알고리즘] 시간복잡도와 공간복잡도 1. 시간 복잡도 특정 알고리즘이 어떤 문제를 해결하는데 걸리는 시간을 의미한다. 같은 결과를 같는 소스라면 시간이 적게 걸리는 것이 좋은 소스이다. 1)빅-오 표기법 최악의 경우를 계산하는 방식을 빅-오(Big-O) 표기법 이라고 부른다. O(1) (constant) : 입력 데이터의 크기에 상관없이 언제나 일정한 시간이 걸리는 알고리즘 O(log2 n) (Logarthmic) : 입력 데이터의 크기가 커질수록 처리 시간이 log 만큼 짧아지는 알고리즘 이진 탐색이 대표적이며, 재귀가 순기능으로 이루어진 경우 O(n) (Linear) : 입력 데이터의 크기에 비례해 처리 시간이 증가하는 알고리즘 1차원 for 문 O(n log2 n) (Linear-Logarithmic) : 데이터가 많아질 수록 처리시.. 2023. 5. 17. [CS]절차지향/객체지향/함수형 프로그래밍 1. 절차지향(Procedural Programming) 특징 절차 중심 : 프로그램은 일련의 절차 또는 함수로 구성되며, 절차가 중심이 되어 데이터를 처리 데이터와 처리의 분리 : 데이터와 데이터를 처리하는 절차를 분리하여 생각하고 설계 코드의 재사용 : 함수나 서브루틴을 사용하여 코드의 재 사용성을 높임 전역 데이터 : 전역 변수를 통해 데이터를 공유하고, 이로 인해 데이터의 접근과 변경이 자유롭다. 순차적 실행 : 프로그램은 단계별로 순차적으로 실행되며, 제어 흐름은 일련의 절차에 따라 진행 장점 코드의 가독성이 좋음 컴퓨터의 처리구조와 비슷해 실행 속도가 빠름 단점 각각의 코드가 순서에 민감하게 연결되어 있어서, 유지보수 및 분석이 어려움 언어 : C, Pascal, FORTRAN, COBOL 등.. 2023. 5. 17. [자료구조] Array와 Linked List 1. Array 저장 방식 : element들은 인접한 Memory 위치에 저장된다. 종류 single dimensional two dimensional multi dimensional 크기 Array의 size는 반드시 array 선언 시점에 지정되어 있어야 합니다. 메모리 할당 Array에서, Memory는 Array가 선언되자 마자 Compile time에 할당되어 진다. 이것을 Static Memory Allocation이라고 한다. Stack Section에 memory 할당이 이루어 진다. 요소 접근 Array는 Random Access를 지원한다. element들은 index를 통해 직접적으로 접근가능하다. 따라서, 접근하는 시간 복잡도는 O(1)이다. 삽입 및 삭제 인덱스로 접근 후 삽입 .. 2023. 5. 16. [자료구조] Stack과 Queue 1. Stack 후입선출(LIFO, Last In First Out) 방식의 자료구조 특징 스택 내부의 데이터는, top을 통해서만 접근 가능 top은 가장 최근(마지막)에 들어온 자료나 데이터를 의미 스택에 데이터를 삽입할 때는, top 위에쌓이게 되며('push' 연산) 스택에서 데이터를 삭제할 때는, top에 위치한 데이터를 삭제하게 된다. (pop 연산) 즉, 스택은 시간 순서에 따라 데이터가 쌓이게 되므로 가장 마지막에 삽입된 데이터가 가정 먼저 삭제된다는 특징을 가지게 된다. 활용 예시 웹 브라우저 방문기록(뒤로 가기) 실행 취소(undo) 역순 문자열 만들기 후위 표기법 계산 A+B*C 가 아닌 ABC*+ 로 표기하는 것 수실의 괄호 검사 연산자 우선순위 표현을 위한 괄호 검사 2. Queu.. 2023. 5. 16. 이전 1 ··· 17 18 19 20 21 22 23 ··· 38 다음