11 8퀸 문제
·
Programming Languages/C
8퀸 문제란? : 서로 공격 할 수 없도록 8개의 퀸은 8x8 체스판에 놓는 문제 1. 8 x 8 체스판, 64칸 에 8개의 퀸을 놓을 수 있는 조합 2. [규칙1] 각 열에 1개씩 배치 3. [규칙2] 각 행에 1개식 배치 3. [규칙3] 대각선 겹침 해결
10 하노이의 탑
·
Programming Languages/C
하노이의 탑(Top of Hanoi) 1. 하노의 탑 룰 2. 하노이의 탑 그룹핑 - 작은 문제로 분해 3. 하노이의 탑 그룹핑 룰 - 작은 문제의 반복 4. 하노이의 탑 구현
09 재귀 알고리즘 분석
·
Programming Languages/C
재귀의 이해는 컴퓨터의 실행 구조를 이해하는데 효과적이다. 분석 방법 1. 하향식(top down) 2. 상향식(bottom up) 3. 비재귀적 구현 1. 하향식(top down) 2. 상향식(bottom up) 3. 비재귀적 표현 재귀 함수를 재귀 호출을 사용하지 않고 구현하는 방법 3.1 꼬리 재귀 제거 방법 3.2 재귀 재거 방법
08 재귀와 유클리드 호제법
·
Programming Languages/C
유클리드 호제법(Euclidean method of mutual division) : 두 정수의 최대 공약수(Greatest Common Divisor)를 재귀적으로 구하는 방법
07 재귀와 순차곱셈(Factorial)
·
Programming Languages/C
재귀(recursive)란? : 순차곱셈(Factorial) :음이 아닌 정수 n의 순사곱셈(n!) 정의 1. 0! = 1 2. n > 0 이면, n! = n x (n-1)! = 10! = 10 x 9! = 10 x 9 x 8! = 10 x 9 x 8 x 7! ...
06 큐
·
Programming Languages/C
큐(Queue)란? : "대기열" : 스택과 마찬가지로 데이터를 일시적으로 저장하기 위한 자료구조 : 큐의 출력 순서 : 선입선출(FIFO, Fisrt In First Out), 가장 먼저 넣은 데이터를 가장 먼저 꺼낸다. 인큐(enqueue): 큐에 데이터를 넣는 작업 디큐(dequeue): 큐에 데이터를 꺼내는 작업 배열을 통한 인큐 디큐 복잡도 데이터를 꺼낼때마다 효율이 떨어진다. 링 버퍼 구조를 통한 디큐 복잡도 향상 링 버퍼 구성도 프런트(front): 맨 처음 요소의 인덱스 리어(rear): 맨 끝 요소 하나 뒤의 인덱스(= 인큐 위치) 인큐와 디큐 수행시, 프런트와 리어 값을 업데이트하면 앞서 발생한 요소 이동 문제를 해결하고 복잡도를 O(1)이 된다. + 오래된 데이터를 버리는 용도
05 Stack
·
Programming Languages/C
스택(Stack)이란? : "겹겹이 쌓음" : 데이터를 일시적으로 저장하기 위해 사용하는 자료구조 : C 언어 프로그램에서 함수 호출, 실행시 내부에서 스택 구조를 사용한다. 스택의 출력 순서 : 후입선출(LIFO, Last In, First Out), 마지막에 넣은 데이터를 가장 먼저 꺼낸다. 푸시(Push): 스택에 데이터를 넣는 작업 팝(Pop): 스택에서 데이터를 꺼내는 작업 함수의 호출과 실행 과정
04 bsearch
·
Programming Languages/C
비교 함수 대소 관계 판단 방법은 요소의 자료형마다 다르기에 사용자가 직접 작성한다. (문자열, 구조체 등) 잘못된 비교 함수 예를 들어, int형의 표현 범위(-32,768 ~ 32,767)에서 벗어난 값 -30,000 - 10,000 등의 제대로 된 결과를 얻을 수 없다.
03 복잡도
·
Programming Languages/C
복잡도 프로그램의 실행 속도는 동작하는 하드웨어나 컴파일러 등의 조건에 따라 다르다. 알고리즘의 성능을 객관적으로 평가하는 기준은 복잡도(Complexity)다. 1. 시간 복잡도(Time Complexity): 실행에 필요한 시간을 평가한 것 2. 공간 복잡도(Space Complexity): 기억 영역과 파일 공간이 얼마나 필요한가를 평가한 것 선형검색 알고리즘의 복잡도 1, 4, 6의 경우, 한번만 실행하기 때문에 복잡도를 O(1)으로 표기 2, 3, 6의 경우, 평균 실행 횟수는 n/2이다. 복잡도를 O(n)으로 표기 O(n)에 필요한 계산 시간은 n에 비례하여 점점 길어진다. O(1)에 필요한 계산 시간은 변하지 않는다. 2개 이상의 복잡도로 구성된 알고리즘의 전체 복잡도는 가장 높은 복잡도를 ..
02 선형 검색
·
Programming Languages/C
검색이란? : 검색이란 어떤 조건을 만족하는 데이터를 찾는 것이다. 검색과 키 : 어떤 검색에서도 특정 항목(Key)을 주목한다는 것은 "검색"의 공통점이다. 선형 검색(Linear Search) - 정렬되지 않은 배열에서 key와 일치하는 요소를 검색하는 유일한 방법이다. - 선형(= 순차 Sequential)검색은 앞부터 순서대로 원하는 키 값을 만날 때까지 요소를 검색한다. 선형 검색 - 보초법(Sentinel Method) 이진 검색(Binary Search) - 정렬된(오름차순, 내림차순) 요소의 배열에서 검색하는 알고리즘입니다. - 선형 검색보다 빠르다. - 이진 검색 알고리즘 종료 조건
08 Interface 09 Property
·
Programming Languages/C#
8. Interface * 왜 쓰는지를 궁금해하는 사람이 많다면, "왜 잘못 사용되고 있는지", "어떻게 하면 제대로 사용될지"를 고민할 것 No. Cat. Class Abstract Class Interface 1 목적 OOP 직접 인스턴싱 금지 추상 매서드 오버라이딩 필수 동일한 메서드를 가진 객체 보장 다중 상속 2 기본 한정자 private private (추상 메서드: public) public 3 인스턴싱 O X X 4 구현부 O (필수) O (선택) X (기본 구현체 예외) 5 중첩 상속 O (클래스 > 클래스) O (추상 클래스 > 추상 클래스) O (인터페이스 > 인터페이스) 6 다중 상속 X (Containment) X O (중복될 구현부가 없다) 7 참조형 선언 O (Object ob..
06 Method 07 Class
·
Programming Languages/C#
기본 개념 * OOP(Object-oriented programming)를 설명하고, PP(Procedural Programming)와 비교 할 수 있는가? * 프로그래밍 대상을 클래스화 시키고, 객체(인스턴스)를 만들어 메서드를 사용할 수 있는가? * 클래스와 인스턴스(객체)의 논리적 개념을 구분 할 수 있는가? - OOP란? : 코드 내의 모든 것을 Object(객체)로 표현하고자 하는 programming paradigm : Encapsulation, Inheritance, Polymorphism - Object(객체)란? : (현실의) 세상 모든 것 : (프로그래밍에서) Class(클래스) 복사본이 메모리에 로드된 상태(= instance) - Class(클래스)란? : (현실의) Object(객..
ubiquitous4g
'분류 전체보기' 카테고리의 글 목록 (3 Page)