
자료를 효율적으로 표현하고 저장하고 처리할 수 있도록 정리하는 것컴퓨터가 효율적으로 문제를 처리하기 위해서는 문제를 정의하고 분석하여 그에 대한 최적의 프로그램을 작성해야 한다. \- 자료구조에 대한 개념과 활용 능력 필요!단순 구조 \- 정수, 실수, 문자, 문자열

10진수 한 자리를 표현하기 위해서 1바이트(8비트)를 사용하는 형식존 영역 \- 상위 4비트1111로 표현수치 영역 \- 하위 4비트 \- 표현하고자 하는 10진수 한 자리 값에 대한 2진수 값을 표시10진수의 자릿수만큼 존 형식을 연결하여 사용마지막 자리의

기억할 대상의 구별되는 특징만을 단순화하여 기억하는 기능크고 복잡한 문제를 단순화시켜 쉽게 해결하기 위한 방법자료 추상화(Data Abstraction) \- 처리할 자료, 연산, 자료형에 대한 추상화 표현자료: 프로그램의 처리 대상이 되는 모든 것을 의미\-연산 \

문제해결 방법을 추상화하여 단계적 절차를 논리적으로 기술해 놓은 명세서입력(input): 알고리즘 수행에 필요한 자료가 외부에서 입력으로 제공될 수 있어야 한다.출력(output): 알고리즘 수행 후 하나 이상의 결과를 출력해야 한다.명확성(definiteness):

자연어를 이용한 서술적 표현 방법순서도(Flow chart)를 이용한 도식화 표현 방법프로그래밍 언어를 이용한 구체화 방법가상코드(Pseudo-code)를 이용한 추상화 방법순서도의 예) 1부터 5까지의 합을 구하는 알고리즘가상코드, 즉 알고리즘 기술언어(ADL, Al

기준에는 정확성, 명확성, 수행량, 메모리 사용량, 최적성 등 있음 \- 정확성: 올바른 자료 입력 시 유한한 시간 내에 올바른 결과 출력 여부명확성: 알고리즘이 얼마나 이해하기 쉽고 명확하게 작성되었는가수행량: 일반적인 연산 제외, 알고리즘 특성 나타내는 중요 연산
Linked List 개념 컴퓨터에 자료를 저장하는 구조의 한 종류 일렬로 연결된 데이터를 저장할 때 사용된다 linked list는 길이가 정해져 있지 않는 데이터의 연결된 집합이다 데이터를 저장할 수 있는 공간이 있으면 그 안에 다음 데이터의 주소를 가지고 있는 구
Last In First Outpop(): 맨 마지막에 넣은 데이터를 가져오면서 지운다.push(): 새로운 데이터를 맨 위에 쌓아 올리는 것.peek(): 맨 마지막 데이터를 봄.isEmpty(): Stack에 데이터가 있는지 없는지 확인하는 것.First In Fi
Binary Tree(이진 트리) 노드가 하나 이상의 자식을 가지면 트리라고 부른다. 그중에 child Node가 최대 2개까지만 붙는 Tree를 binary tree라고 부른다. (3개 붙는 트리는 ternary tree) Binary Search Tree 왼쪽 N
Directed, UndirectedGraph는 방향이 있을 수도 없을 수도 있다. (Tree는 Directed Graph이다.)Cyclic, Acyclic하나 이상의 cicle이 있는 그래프는 Cyclic Graph 없는 Graph는 Acyclic Graph라고 하낟
검색하고자 하는 키 값을 입력 받아서 Hash 함수를 돌려서 반환 받은 Hash Code를 배열의 인덱스로 확산을 해서 데이터 접근을 하는 방식의 자료구조F(key) -> HashCode -> Index -> ValueHash Table은 검색속도가 매우 빠르다Hash
정렬이 안되어 있는 배열이 있으면 아무거나 값을 잡고 그 값을 기준으로 작은 것은 왼쪽 큰 것을 오른쪽으로 정렬 => 계속 반복하다 보면 파티션이 2개만 남는 일이 생김.평균적으로 O(nlogn): 파티션을 나누는 횟수가 n -> 한 번 나누면 검색해야 되는 데이터가