전공/그 외 썸네일형 리스트형 [알고리즘] 전공 필기 시험 준비2 그래프·트리 순회 깊이 우선 탐색(DFT, Depth First Search) :전위 순회(Pre-order traversal), 정위 순회(In-order traversal), 후위 순회(Post-order traversal) 너비 우선 탐색(Breadth First Search) : 레벨 순회 1. 깊이 우선 탐색(DFT, Depth First Search) 진행 가능한 노드가 없을 때까지 깊게 파고들며 탐색하는 방식 더이상 방문 가능한 노드가 없다면 이전의 위치로 돌아와 다른 방향으로 깊게 파고들며 탐색한다. 과거 위치의 인접 노드보다 현재 위치의 인접 노드를 먼저 방문한다는 특징을 가지므로, LIFO방식의 스택(stack)을 사용해 구현할 수 있다. 1) 전위 순회 (Pre-order traver.. 더보기 [소프트웨어공학] 전공 시험 정리2 ✔️ 테스트 기법 1. 블랙 박스 테스트(Back box test) - 어떤 소프트웨어를 내부 구조나 작동 원리를 모르는 상태에서 소프트웨어의 동작을 검사하는 방법 - 필요한 것은 특징, 요구 사항, 검사를 위해 공개된 설계도 등 대외적으로 공개된 사항들이며 '이 소프트웨어는 무슨 역할을 수행해야 되는가'와 같이 대상이 되는 소프트웨어의 특징이나 요구 사항 등에 초점을 맞춰 검사가 이루어진다. - 동등분할, 경계값 분석, 의사결정 테이블, 상태전이, 분류트리, 페어와이즈 조합 ▶ 동등분할 기법(Equivalence Class Partitioning) 대표값을 이용하여 테스트 케이스를 도출 프로그램의 입력 도메인을 테스트 케이스가 산출 될 수 있는 데이터의 클래스로 분류하는 방법, 다양한 입력조건들을 갖춘.. 더보기 [자료구조] 전공 필기 시험 정리 ✔️ 이진트리 각각의 노드가 최대 두 개의 자식 노드를 가지는 트리 자료구조 1. 이진 트리의 종류 1) 정이진트리(포화이진트리,Full binary tree) - leaf node가 끝까지 정말 꽉 찬 트리 2) 완전이진트리(Complete binary tree) - 마지막 레벨을 제외한 모든 레벨에서 순서대로 node가 꽉 채워진 트리 - 높이가 k라면 k-1레벨까지는 노드가 꽉 채워져있고, 마지막 레벨에서는 노드가 꽉 차있지 않아도 되지만 왼쪽부터 순서대로 차있어야 한다 -노드 i의 부모 노드 인덱스는 floor(i/2), 왼쪽 자식 노드 인덱스는 2*i ,오른쪽 자식 노드 인덱스는 2*i+1 3) 균형이진트리(Balanced binary tree) - leaf node들의 레벨차이가 최대 1레벨까.. 더보기 [알고리즘] 전공 필기시험 정리 ✔️ 정렬 1. 수행 장소 별 정렬 분류 2. 시간 복잡도 별 정렬 분류 O(n²)의 시간 복잡도 (정렬할 자료의 수가 늘어나면 제곱에 비례해서 증가) 버블 정렬(Bubble Sort) 선택 정렬(Selection Sort) 삽입 정렬(Insertion Sort) O(n log n)의 시간 복잡도 병합 정렬(Merge Sort) 퀵 정렬(Quick Sort) 3. 정렬 종류 1) 버블 정렬(Bubble Sort) 인접한 두 수를 비교하며 정렬해나가는 방법으로 O(n²)의 느린 성능 앞에서부터 시작하여 큰 수를 뒤로 보내 뒤가 가장 큰 값을 가지도록 완성해나가는 방법 또는 뒤에서부터 반복하여 앞의 작은 값부터 정렬을 완성해나가는 방법 2) 선택 정렬(Selection Sort) 한 바퀴 돌 때 가장 작은 .. 더보기 [소프트웨어공학] 전공 필기 시험 정리 ✔️ 모듈 1. 모듈과 모듈화 모듈화란 소프트웨어를 각 기능별로 나누는 것을 의미한다.그리고 그 결과로 각 기능별로 분할된 것을 모듈이라고 한다. 2. 독립성 좋은 모듈화는 용도에 맞게 잘 구분된 기능을 가진 독립적인 모듈로 나누는 것이다. 모듈의 독립성을 판단하는 것은 결합도와 응집도가 있다. 3. 결합도(Coupling) 결합도는 외부의 모듈과의 연관도 또는 모듈 간의 상호의존성을 나타내는 정도 결합도는 소프트웨어 구조에서 모듈 간의 관련성을 측정하는 척도 1) 결합도의 특징 모듈 연관성 없음 인터페이스 의존성 복잡성 감소 파급효과 최소화 2) 결합도의 유형 결합도의 유형은 내용>공통>외부>제어>스탬프>자료 결합도 순으로 결합도가 낮아진다. ▶ 내용 결합도(Content Coupling) - 내용 결.. 더보기 [컴퓨터 구조] 전공 필기 시험 정리 ✔️레지스터 PC : 다음에 수행할 명령어 주소 IR : 명령어 저장 MAR : 실행 데이터 주소 저장 MBR : 메모리 버퍼 ALU : 산술 논리 연산 장치 ✔️기억장치 1. 주기억장치 : RAM 2. 보조기억장치 : 하드 디스크, USB, CD-ROM, 외장 하드 ✔️캐시 기억 장치 1. 캐시 기억장치 - 중앙처리장치(CPU)에 명령어와 데이터를 빠르게 제공하기 위해 주기억장치에 저장되어 있는 명령어와 데이터 일부를 복사해서 임시로 저장하는 장치 - 주기억장치보다 명령어와 데이터를 저장하고 인출하는 속도가 빠름 - 빠르게 동작하는 중앙처리장치와 느리게 동작하는 주기억장치 사이에서 속도 차이를 줄여주는 완충제 역할을 하는 기억장치 - CPU는 주기억장치에 접근하기 전에 캐시 기억장치를 먼저 확인 2. .. 더보기 [스터디 2일차]함수형 프로그래밍/ 좋은 코드란 / MVC 패턴이란 1. 함수형 프로그래밍 1) 명령형 프로그래밍 (Imperative Programming) 설명 : 프로그래밍의 상태 & 상태를 변경하는 구문의 관점에서 설명하는 방식 특징 : 알고리즘을 명시하고, 목표는 명시하지 않음 예시 : 절차지향 프로그래밍(C,C++), 객체지향 프로그래밍(C++,Java) 2) 선언형 프로그래밍 (Declarative Programming) 설명 : 방법론 보다는 무엇을 해야하는지를 설명하는 방식 특징 : 알고리즘을 명시하지 않고, 목표만 명시 // 이론적 배경을 람다 계산식에 둠 예시 : 함수형 프로그래밍( Lisp, ML ), 반응형 프로그래밍 // 명령형 function add (arr) { let result = 0 for (let i = 0; i < arr.length.. 더보기 [스터디 1일차] - git / TDD / 객체지향 프로그래밍 0. 출처 https://github.com/alstjgg/cs-study GitHub - alstjgg/cs-study: CS 스터디입니다 CS 스터디입니다. Contribute to alstjgg/cs-study development by creating an account on GitHub. github.com 1. [git과 github] 1. GIT - 버전관리 도구, 대표적 관리 도구엔 git과 svn이 존재 - svn과의 가장 큰 차이는 svn은 중앙 집중 관리식, git은 분산 관리식이라는 것입니다( 저장소를 여러개를 두고 분산관리 한다는 차이점이 존재) - SVN은 소스 변경 사항과 히스토리가 서버에 즉시 반영되기 때문에 변경 사항 및 히스토리 관리가 용이하다. 그러나 중앙 저장소 데이터.. 더보기 이전 1 다음