별의 공부 블로그 🧑🏻‍💻

🗒️ Categories (1539)

728x90
  1. 2017.06.18 [C] 정렬(Sorting)

    정렬(Sorting) - 정렬(sorting) : 물건을 크기순으로 오름차순(ascending order)이나 내림차순(descending order)으로 나열하는 것. - 정렬은 컴퓨터공학을 포함한 모든 과학 기술 분야에서 가장 기본적이고 중요한 알고리즘 중의 하나로 일상생활에서 많이 사용됨. - 정렬은 자료 탐색에 있어서 필수적임. - 일반적으로 정렬시켜야 될 대상은 레코드(record)라고 불림. - 레코드는 다시 필드(field)라고 하는, 더 작은 단위로 나누어짐. - 여러 필드 중에서 특별히 레코드와 레코드를 식별해주는 역할을 하는 필드를 키(key)라고 함. 레코드 { [필드][필드][필드][필드][필드][필드][필드][필드][필드][필드] 레코드 { [필드][필드][필드][필드][필드][필..

  2. 2017.06.17 [C] 우선순위 큐(Priority Queue)

    우선순위 큐(Priority Queue) - 컴퓨터에 우선순위의 개념이 필요할 때가 있음. 예) 네트워크 패킷 중에서 네트워크 관리와 관련된 패킷은 다른 일반 패킷보다 우선순위를 가짐. 예) 운영 시스템에서도 시스템 프로세스는 응용 프로세스보다 우선순위를 가지게 됨. - 따라서 자료 구조에서도 이러한 우선순위를 지원하는 것이 필요함. - 우선순위 큐(priority queue) : 우선순위의 개념을 큐에 도입한 자료 구조. - 보통의 큐는 선입 선출(FIFO)의 원칙에 의하여 먼저 들어온 데이터가 먼저 나가게 되지만, 우선순위 큐에서는 데이터들이 우선순위를 가지고 있고 우선순위가 높은 데이터가 먼저 나가게 됨. - 스택에 들어 있는 데이터들은 우선순위가 없음. 단지 먼저 들어간 데이터가 가장 늦게 나옴...

  3. 2017.06.11 Comparison among FUNCALL and APPLY and REDUCE

    ;; Comparison CG-USER(38): (funcall #'+ 1 2 3)6CG-USER(39): (apply #'+ '(1 2 3))6CG-USER(40): (reduce #'+ '(1 2 3))6 Comparison among FUNCALL and APPLY and REDUCE.Keep in mind that you should write only numbers when you use FUNCALL with #'(arithmetic operator).

  4. 2017.06.08 Block's World

    ;;;; Block's World;; ;;;; Global Variables;; (defstruct blocks (name nil) (color nil) (ison 'table) (isunder nil)) (defvar *blocks*) ;;;; Main;; (defun start-world () (setf *blocks* nil)) (defun new-block (name color) (push (make-blocks :name name :color color) *blocks*)) (defun get-block (name) (dolist (x *blocks* nil) (if (equal name (blocks-name x)) (return x)))) (defun clear-top? (name) (if ..

  5. 2017.06.06 Destructive Operations

    ;; Destructive Operations ;; CG-USER(28): (setf x nil);; NIL;; CG-USER(29): (nconc x y);; (D E F);; CG-USER(30): x;; NIL;; CG-USER(31): y;; (D E F);; CG-USER(32): (setf X (nconc X Y));; (D E F);; CG-USER(33): y;; (D E F);; CG-USER(34): x;; (D E F) ;; CG-USER(14): (setf x '(a b c));; (A B C);; CG-USER(15): (setf y '(d e f));; (D E F);; CG-USER(16): (setf z (append x y));; (A B C D E F);; CG-USER(..

  6. 2017.06.01 Readable Code

  7. 2017.06.01 [C] 트리(Tree)

    트리(Tree) - 선형 자료 구조(linear data structure) : 자료들이 직선과 같이 나열되어 있는 구조 (리스트, 스택, 큐 등) - 트리는 계층적인 구조(hierarchical structure) 또는 비선형 자료 구조(nonlinear data structure)를 가지고 있으며, 계층적인 자료를 표현하는 데 이용되는 자료 구조. - 인공 지능 문제에서도 트리가 사용되는데 대표적인 것으로 결정 트리(decision tree)가 있음. - 결정 트리는 인간의 의사 결정 구조를 표현하는 한 가지 방법. [트리에서 쓰이는 용어] - 노드(node) : 트리의 구성 요소 - 트리는 한 개 이상의 노드로 이루어진 유한 집합임. - 이들 중 하나의 노드는 루트(root) 노드라고 불리고, 나머..

  8. 2017.05.31 원형 큐 (Circular Queue) 예

    123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106// 원형 큐 예 #include #include typedef int element;typedef struct { element *queue; int front, rear; int size;} QueueType; void init(QueueType *q) { q->front = q->rear = 0; q->size = 2; // 원형..

  9. 2017.05.31 중위 표기 수식을 전위 표기 수식으로 변환하는 프로그램

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 12..

  10. 2017.05.31 samesetp

    (defun samesetp (lis1 lis2) (if (and (not (null lis1)) (not (null lis2))) (let ((x (first lis1)) (y (first lis2))) (cond ((and (listp x) (listp y)) (and (samesetp x y) (samesetp (rest lis1) (rest lis2)))) (t (and (eq x y) (samesetp (rest lis1) (rest lis2)))))) (= (length lis1) (length lis2)))) (defun samesetp (lis1 lis2) "Another Version of samesetp." (if (null lis1) (null lis2) (let ((x (remove..

  11. 2017.05.30 Tic Tac Toe Game

    ;; Defining global varaibles and constants (defconstant One 1) ;; human(defconstant TheOther 10) ;; computer (defvar *Opponent* One)(defvar *Computer* TheOther) (defvar *Triplets* '((1 2 3) (4 5 6) (7 8 9) ;; Horizontal Line (1 4 7) (2 5 8) (3 6 9) ;; Vertical Line (1 5 9) (3 5 7))) ;; Diagonal Line ;; Main ;; Initialization: Creating a board (defun makeBoard () (list 'Board 0 0 0 0 0 0 0 0 0)) ..

  12. 2017.05.30 배열 요소 정리

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 #include using namespace std; int main() { const int num =5; int test[num]; cout

  13. 2017.05.30 인수와 레퍼런스

    * 인수와 레퍼런스 - 포인터를 함수의 인수로 사용하면 호출자의 변수를 변경할 수 있음. - 하지만 포인터는 메모리 주소를 직접 다루기 때문에 어려움. - 레퍼런스(reference) : 변수등으로 초기화한 식별자. 형명 앞에 &를 붙여서 선언함. 형명& 레퍼런스명 = 변수; // 레퍼런스명에는 식별자를 사용함. int a; int& rA = a; // 레퍼런스 rA를 변수 a로 초기화함. -> 이 코드에서 'rA'가 레퍼런스. rA를 변수 a로 초기화한 것. - 예) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 #include using namespace std; int main() { int a = 5; int& rA = a; // 레퍼런스 rA를 변수 ..

  14. 2017.05.29 함수 템플릿 (Function Template)

    * 함수 템플릿 (Function Template) - 함수 템플릿(Fundtion Template) : 다루는 형만 다른 함수를 틀을 통해 찍어내듯 만들어낼 때 필요한 틀. - 순서 1. 함수 템플릿을선언 및 정의 2. 함수 호출 (함수가 자동으로 만들어짐.) (1) 함수 템플릿 정의 template // 상황에 맞추어 변경시킬 형(type)의 이름을 지정함. 함수의 선언 혹은 정의 - 부분에는 템플릿 인수라는 것을 집어 넣음. - 템플릿 인수에는 T와 같은 임시 형(type) 이름을 넣음. - 함수 템플릿의 가인수형명은 템플릿 인수임. - 가인수의 구체적인 형(type) 이름 대신 T와 같은 임시 형(type) 이름을 사용함. - 함수 템플릿은 함수의 '틀'이 됨. 1 2 3 4 5 6 7 8 // ..

  15. 2017.05.25 함수 오버로드 (Function Overloading)

    * 함수 오버로드 (Function Overloading) - 인수의 형과 개수가 다르면 같은 이름을 가진 함수를 여러 개 정의할 수 있음. - 예) int max(int x, int y) double max(double x, double y) - 이처럼 인수의 개수 및 형이 다르면서 이름만 같은 함수를 여러 개 정의하는 행위를 일컬어 함수의 오버로드(중복정의 : function overloading)이라고 부름. - 비슷한 함수 여러 개를 같은 이름으로 중복 정의(오버로드)해 두면, 그 이름과 일치하는 함수 중 인수의 형(type)과 개수가 일치하는 함수가 자동적으로 호출됨. - 오버르드 기능을 활용하면 가독성이 높은 코드를 작성할 수 있음. - 오버르드 사용시 주의점 -> 오버로드할 함수는 그 인수의..

  16. 2017.05.25 기본 인수 (Default Argument)

    * 기본 인수 (Default Argument) - 함수 프로토타입 선언 시 기본 인수(default argumet)를 지정하는 것이 일반적임. - 기본 인수를 지정해 두면, 함수 호출시 실인수를 생략할 수 있다는 장점이 있음. - 실인수를 생략하면 미리 지정해둔 기본값이 함수에 넘겨짐. - 기본 인수를 지정한 함수 프로토타입 선언 리턴 값의 형(type) 함수명(형(type) 가인수명 = 기본값, ...); - 기본 인수는 함수 선언 혹은 함수 프로토타입 선언시 한 번만 지정함. - 즉, 함수 프로토타입 선언에서 기본 인수를 지정했다면, 함수 본체를 정의할 때에는 기본 인수를 선언할 수 없음. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2..

  17. 2017.05.25 인라인 함수 (Inline Function)

    * 인라인 함수 (inline function) - 정의 inline 리턴 값의 형 함수 이름(인수리스트) { ... } - 함수 선언부 앞에 inline이 붙여진 함수. - 인라인 함수의 몸체는 컴파일러에 의해 호출 부분에 직접 기록되므로 전체적인 속도 향상을 꾀할 수 있음. - 그러나 너무 긴 코드는 컴파일러가 인라인 함수로 인정하지 않기도 함. - 컴파일러는 간단한 처리만 인라인 함수로 인정하고, 호출 부분에 함수 전체를 기록해 줌.

  18. 2017.05.25 const

    * const - const 키워드 const 형명 식별자 = 식(expression); - const를 사용하여 변수를 초기화하면, 이보다 뒤에 등장한 코드에서는 const가 지정된 해당 변수에 값을 대입할 수 없게 됨. - const로 지정한 변수는 그 값을 변경할 수 없기 때문에, 상수(constant)라고 부르기도 함. - 상수를 사용할 경우, 프로그램 변경이 매우 간편해진다는 장점이 있음. - const 키워드 사용시 주의해야 할 점 1) const 키워드를 지정한 상수는 나중에 그 값을 바꿀 수 없음. (바꾸려고 할 경우 컴파일 오류 발생) 2) const가 지정된 변수는 반드시 초기화 작업이 필요함. (초기화하지 않은 상수에 값을 대입하려 할 경우 컴파일 오류 발생) 1 2 3 4 5 6 7..

  19. 2017.05.25 키보드 입력

    * 키보드 입력 - 키보드에서 입력을 받을 때에는 cin >> 라는 단어를 사용함. - 공백과 같은 입력은 무시됨. - >> 기호에는 키보드 입력을 지정한 변수로 보내는 기능이 있음. 1 2 3 4 5 6 7 8 9 10 11 12 #include using namespace std; int main() { int num = 0; cout num; cout > num2; cout

  20. 2017.05.25 숫자 리터럴 (Number Literal)

    * 숫자 리터럴 - 숫자 리터럴은 다음과 같은 종류가 있음. 1) 정수 리터럴 (Integerl Literal) ex) 3, 4, 100 2) 부동 소수점 리터럴 (Floating-point Literal) ex) 1.4, 3.53 - 숫자 리터럴은 ' '나 " "로 감싸지 않음. - 8진수 및 16진수 표기법 1) 8진수 : 숫자 앞에 0를 붙임. 2) 16진수 : 숫자 앞에 0x를 붙임. 1 2 3 4 5 6 7 8 9 10 11 #include using namespace std; int main() { cout

  21. 2017.05.25 이스케이프 시퀀스 (Escape Sequence)

    이스케이프 시퀀스 의미하는 문자 \a 경고음 \b 백스페이스 \f 페이지 나누기 \n 줄바꿈 \r 복귀 \t 수평 탭 \v 수직 탭 \\ \ \' ' \" " \? ? \ooo 8진수 ooo 문자 코드로 표기할 수 있는 문자 (0는 0~7까지의 숫자) \xhh 16진수 hh 문자 코드로 표기할 수 있는 문자(h는 0~9까지의 숫자와 A~F까지의 영문자)

  22. 2017.05.25 swipejs 플러그인 활용하기

    * swipejs 플러그인 - 스마트폰 액정에서 손으로 터치하여 좌우로 밀어 이전 또는 다음 배너로 넘어가는 터치 슬라이드 배너를 쉽고 간단하게 만들 수 있음. - 기본 메서드 적용 방법(기본형) window.mySwipe = $(요소 선택).Swipe({ 옵션 설정 }).data('Swipe'); - swipejs 플러그인의 옵션 종류 종류 설명 startSlide: 숫자 (default:0) 인덱스 값으로 초기에 열릴 슬라이드를 지정함. auto: 밀리초 자동 슬라이드 이동 시간을 설정함. continuous: 논릿값 (default:true) 슬라이드 이동 시 연속적으로 반복, 롤링되어 나오게 할 것인지 설정함. disableScroll: 논릿값 (default:false) 브라우저에 스크롤바를 사..

  23. 2017.05.25 Accordion Image 플러그인 활용하기

    * Accordion Image 플러그인 - 문단 태그의 내용을 마치 아코디언 악기처럼 펼쳐졌다 줄여지는 기능을 쉽게 구현시킬 수 있는 플러그인 라이브러리 파일. - 기본 메서드 적용 방법 (기본형) $("요소 선택").AccordionImageMenut({ 옵션 설정 }); - Accordion Image 옵션 종류 종류 설명 position 아코디언 방향을 가로("horizontal")로 할지 세로("vertical")로 할지 설정함. openItem 값을 0으로 설정하면 초기 화면부터 첫 번째 배너가 펼쳐져 있게 됨. 1로 설정하면 두번째 배너가 펼쳐져 있게 됨. openDim 펼쳐져 있는 배너의 너비를 설정함. closeDim 닫혀 있는 배너의 너비를 설정함. width 전체 배너의 너비를 설정함..

  24. 2017.05.25 bxSlider 플러그인 활용하기

    * bxSlider 플러그인 - bxSlider 플러그인을 사용하면, 슬라이드 배너나 자동으로 재생되는 슬라이드 배너를 쉽고 간단히 만들 수 있음. - 기본 메서드 적용 방법 (기본형) var 참조 변수 = $('요소 선택').bxSlider({ 옵션 설정 }); - bxSlider 옵션 종류 종류 기본값 데이터 형식 설명 mode "horizontal" "horizontal" "vertical" "fade" 슬라이드 이동 방향을 설정 speed 500 숫자형 값 슬라이드 전환 시 속도를 설정 pager true 논리형 값 현재 위치를 알리는 불릿(동그라미 버튼) 노출 여부를 설정 moveSlides 0 숫자형 값 슬라이드 이동 시 개수를 설정 sliderWidth 0 숫자형 값 슬라이드마다 너비를 설정..

  25. 2017.05.25 제이쿼리 UI 플러그인

    * 제이쿼리 플러그인이란? - 제이쿼리 플러그인(plug-in)은 여러 개발자가 드레그 & 드롭, 슬라이드 배너, 툴 팁 기능 등을 구현해 놓은 프로그래밍을 자바스크립트 파이로 제공하는 제이쿼리 라이브러리를 의미함. - 제이쿼리 플러그인을 내 웹 문서에 가져다 연동시키기만 하면 바로 사용할 수 있음. - 제이쿼리 플러그인은 사용하고자 하는 기능의 플러그인을 검색하여 다운로드받고 웹 문서에 연동해 선택한 요소에 기능(Method)만 적용하면, 간단한 코드 삽입만으로도 복잡하고 어려운 기능을 쉽게 구현할 수 있음. - 거의 모든 플러그인에는 예제(Demo) 파일이 포함되어 있어, 이것을 참고하면 누구나 웹 문서에 어렵지 않게 플러그인 기능을 적용할 수 있음. * UI를 개발할 때 유용한 플러그인 - 검색 사..

  26. 2017.05.25 Ajax로 RSS 연동하기

    - RSS(Really Simple Syndication)란, 사전저긍로 '초간편 배급(배포)'이라는 의미를 가지고 있음. - 자주 업데이트되는 뉴스나 신문 기사 내용을 사용자에게 쉽게 배포하기 위해 만들어진 XML 기반의 배급 포맷. - 크로스 도메인이란 도메인이 서로 다를 경우에 정보 교환을 하지 못하도록 한 보안 정책을 의미하며, 이를 해결할 수 있는 방법으로는 구글에서 제공하는 Google Feed API link(데이터 전환 전송 기능)을 이용하는 것이 있음. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 4..

  27. 2017.05.25 Ajax 관련 메서드

    * Ajax 관련 메서드들 - Ajax(Asynchronous JavaScript and XML)는 클라이언트(방문자 컴퓨터)가 비동기 방식으로 자바스크립트를 이용하여 환면 전환 없이 서버(서비스 제공 컴퓨터) 층에 자료(XML, (X)HTML, JSON, 텍스트 유형 등)를 요청할 때 사용함. - Ajax 관련 메서드의 종류 종류 풀이 load() 외부 콘텐츠를 가져올 때 사용함. $.ajax() 데이터를 서버에 HTTP, POST, GET 방식으로 전송이 가능하며, (X)HTML, XML, JSON, 텍스트 유형에 데이터를 요청할 수 있는 통합적인 메서드. 이 표에서 $.post(), $.get(), $.getJSON() 메서드의 기능을 하나로 합쳐 놓은 것이라고 보면 됨. $.post() 데이터를 ..

  28. 2017.05.25 Ajax란?

    * Ajax란? - Ajax(Asynchronous JavaScript and XML)란, 비동기 방식의 JavaScript와 XML을 의미함. - 동기 방식과 비동식 방식의 차이점 -> 동기 방식의 경우는 서버에 신호를 보냈을 때 응답이 돌아와야 다음 동작을 수행할 수 있지만, 비동기 방식은 그와 반대로 신호를 보냈을 때 응답 상태와 상관 없이 다음 동작을 수행할 수 있음. - Ajax를 이용한는 주목적 -> 화면 전환 없이 클라이언트(방문자 컴퓨터) 측과 서버(서비스를 제공하는 컴퓨터) 측 간의 XML, JSON(JavaScript Object Notation), 텍스트, (X)HTML 등의 정보를 교환하기 위해서. - Ajax를 이용하면 방문객이 보는 컴퓨터에서 서버(Server)에 자료를 요청할 ..

  29. 2017.05.24 효과 제어 메서드

    * 효과 제어 메서드란? - 효과 또는 애니메이션이 적용된 요소에 동작을 정지시키거나 동작 초기 실행을 지연시키는 등의 제어를 할 수 있는 메서드 - 효과 제어 메서드의 종류 종류 풀이 stop() 현재 실행 중인 효과를 모두 정지시킴. delay() 스택에 대기 중인 애니메이션 효과를 지연시킴. 다시 말하면, 대기 중인 효과가 지정한 시간만큼 지연된 후 발생됨. queue() 선택된 요소의 스택에 대기 중인 큐를 반환하거나 함수에 실행문을 큐로 추가시킬 수 있음. clearQueue() 첫 번째 큐에 해당하는 효과 또는 애니메이션만 실행하고 대기 중인 큐를 모두 삭제함. dequeue() 스택에 쌓인 큐를 모두 제거함. finish() 선택한 요소의 진행 중인 애니메이션이 강제로 완료 시점으로 간 후 ..

  30. 2017.05.24 효과 및 애니메이션 메서드

    * 효과 및 애니메이션 메서드 - 문서 객체를 보이게 했다가 숨기려면 스타일(CSS)에 display 속성을 사용해야 함. - 스타일을 이용하면 객체는 단순히 보였다가 숨겨짐. - 하지만 효과(Effect) 메서드를 사용하면 스타일(CSS)을 사용하는 것보다 좀 더 역동적인 동작을 적용하여 객체를 화려하게 숨기거나 보이게 만들 수 있음. - 효과에 애니메이션 메서드까지 사용하면 선택한 요소에 다양한 동작(Motion)을 적용시킬 수 있음 * 효과 메서드 - 효과(Effect) 메서드에는 선택한 요소를 역동적으로 숨겼다가 보이게 만드는 기능을 가진 메서드, 선택한 요소에 동작을 적용시킬 수 있는 애니메이션 메서드가 있음. - 효과 메서드의 종류 종류 풀이 hide() 노출되어 있는 요소를 숨김. show(..

728x90


📖 Contents 📖