본문 바로가기
반응형

[Public] 컴퓨터공학27

[알고리즘] 카프-라빈 알고리즘 (문자열 검색 #1) 카프-라빈 알고리즘에 대해서 설명해보려고 한다. 먼저 새로운 다짐을 하고 새해 처음 쓰는 글이다. 이미 20일이지만.. ㅋㅋ 내글을 한방에 읽고 카프-라빈 알고리즘이 머리에 꽉 박히면 좋겟다. 박혔으면 리플은 남겨주는 센스... ㅎㅎㅎ 리플을 남겨주면 이 글을 써놓은 보람이 생겨서 재미를 느끼고 글을 쓰게 되는거 같다. 말이 길었다. 카프 라빈 알고리즘에 대해 알아보자 오늘 나는 읽고 싶은 책이 생겨서 학교 도서관을 갔다. 읽고 싶은 책은 "카프-라빈 이 들려주는 이야기 " 어라 이 책이 어디 있을가? 앞에 컴퓨터가 있다. 음 여기서 찾으면 되겠군 ㅋㅋㅋ 검색란을 사용해야 겠다. 카프-라빈 검색 클릭! 짠 A열 135번에 있단다. 자 여기서 우리는 한번 짚어 보자 검색하는 과정을 보자 우리는 여기서 카프.. 2010. 1. 23.
[자료구조] 3. 스택 스택 (Stack) 2009. 10. 19(月) 1. 스택의 개요 1) 스택의 정의 - 여러 개의 데이터 항목들이 일정한 순서로 나열된 자료 구조에서 한쪽 끝에서만 새로운 항목을 삽입하거나 기존 항목을 삭제하는 자료구조의 한 형태를 말한다. 보통 나중에 들어온 데이터가 가장 먼저 나가는 형태라 하여 LIFO(Last In First Out)이라는 말을 많이 쓰기도 한다. 이는 데이터가 입력되는 위치와 출력되는 위치가 같은 특징을 지니고 있다. 2) 스택의 예 - 스택은 우리 일상에서 많이 볼 수 있다. 음료수 자판기에 음료수를 집어 넣으면 먼저 넣으면 앞에 있는 음료수를 먼저 빼 먹는 이런 원리와 비슷하다고 할 수 있다. 이 뿐만 아니라 골목길 안에 주차를 할 때 나중에 먼저 주차를 한 차가 나가야지만 .. 2009. 10. 19.
[자료구조] 2. 연결리스트 링크로 연결된 연결리스트 2009. 10. 14 (水) 1. 연결리스트 필요성 1) 배열의 한계점 - 배열은 시작주소로부터 거리를 의하는 오프셋을 계산하여 접근하기 때문에 매우 빠르게 접근하지만 다음과 같은 한계점을 지니고 있다. ① 메모리 사용이 비효율적이다. - 배열은 정적인 자료구조. 즉 배열 선언 시점에 크기가 정해지기 때문에 선언 이후에는 크기를 다시 설정되는 작업이 허용되지 않는다. 또 배열의 크기를 넘어서는 경우도 마찬가지다. ② 배열내의 데이터 이동 및 재구성이 어렵다 - 배열내의 데이터 이동 및 재구성이 어렵다. 즉 메모리상에 순차적으로 존재 하기 때문에 중간에서 하나 삭제하거나 삽입하면 그 부분 이후 데이터는 모두 순차적으로 이동하기 때문에 데이터의 이동 및 재구성이 어려운 것이다. 2.. 2009. 10. 14.
[자료구조] 1. 배열 다루기 첨자로 빠르게 접근하는 배열 2009. 10. 05 (月) 1. 배열의 개요 1) 배열의 필요성 - 프로그램에서 처리에 필요한 데이터를 저장하기 위해서 변수를 선언하고 이를 이용해서 값을 저장하고 읽는다. 하지만 데이터가 매우 많다면 일일이 변수를 선언해서 각각의 변수명을 처리해야 한다. 그래서 제공되는 것이 배열이다. - 동일한 성질을 가진 자료들의 집합이라 생각하면 된다. 2) 배열의 선언 - Int arrScore [10] 자료형 배열명 배열크기 3) 배열에 값 저장하기 - 배열의 첨자는 0부터 시작한다. 10개를 선언하면 0~9 까지 #include void main() { int T; int nArray[10] = {0, }; int K; printf("T = %x\n", &T); for(int.. 2009. 10. 5.
[알고리즘] 4배수 마방진 2009. 05. 13 (水) 4배수의 마방진이란 n의 값이 4 8 12 같이 4의 배수로 구성된 마방진을 뜻 합니다. 1. 4배수 마방진 풀이 ① 1:2:2 의 비율로 가로 세로를 3등분하여 9개 구역으로 나눕니다. ② 대각선 방향은 정방향으로 1부터 숫자를 차례대로 대입합니다 ③ 나머지 영역은 끝에서부터 역방향으로 차례대로 기록 합니다. 2. 소스 #include "stdafx.h" #include #define MAXSIZE 10 int g_nSquare[MAXSIZE][MAXSIZE] ={0, }; bool IsInBlock(int n, int row, int col); void GetQuaterSquare(int n); void InitSquare(); void PrintSquare(int n).. 2009. 5. 13.
[알고리즘] 홀수 마방진 2009. 05. 11 (月) 중국 전설의 주인공인 한나라 우임금은 홍수를 다스리려고 황하강의 지류에서 물길을 고치다가 거북 등껍질에 새겨진 이상한 그림을 얻었다고 합니다. 낙서라 불려지는 이 그림은 1부터 9까지의 숫자가 3X3의 정사각형에 배열돼 있었다고 한다. 신기한 것은 늘어선 숫자들이 가로, 세로, 대각선 어느 방향으로 더해도 그 합이 15가 되는 것이었습니다. 그래서 고대 중국에서는 이 낙서가 우주의 원리를 포함 하고 있다고 여기고 신비한 힘을 가지고 있다고 생각되었습니다. 이처럼 1부터 연이은 숫자로 사각형 모양으로 배열해 가로 세로 대각선 방향의 합이 모두 같도록 배열한 것을 마방진 이라고 합니다. 1. 홀수 마방진 풀이 ① 첫 번째 숫자를 1행의 중앙열에 넣는다. ② 대각선 방향(한 칸 .. 2009. 5. 11.
반응형