분류 전체보기 썸네일형 리스트형 [C code] 백트래킹(Backtracking ; 퇴각검색), N-Queen 문제 백트래킹은 한정 조건을 가진 문제(Constraint Satisfaction Problem ; 제약 충족 문제)를 풀려는 전략이다 이미 지나쳐온 곳을 다시 돌아가서 다른 가능성을 시도해보는 걸 반복하는 기법 ! 브루트포스는 꼭 '깊이'나 '탐색'의 개념이 아니더라도, 모든 경우의 수를 다 대입해보는 것이기 때문에 다른 개념이다 조건에 맞지 않는 경우들을 배제해가며, 모든 조합을 하나씩 시도해서 문제의 해를 찾는다 보통 재귀 함수로 구현이 되고 DFS와 비슷하게 스택을 쓰는 경우가 많지만, 기억 공간은 덜 차지한다 ( 아래 의사코드 11, 13 Line - 퇴각하며 "apply"했던 "value"를 다시 "remove"하여 돌려놓음 -> 조건 초기화 ※중요※ ) 의사코드는 다음과 같다 void findSo.. 더보기 JAVA 연습장 실행하기 컴파일러 인텔리제이 이클립스 ... 웹 컴파일러 www.jdoodle.com www.ideone,com ... 설치버전보기 cmd 창 - java -version / javac -version 설치 JDK(java development kit) : 개발자용 java 도구 - download - *.exe 다운 (- cmd 그래도 안 뜨면 pass(경로) 설정해야함) - eclipse 다운 - Eclipse IDE for Developers로 install eclipse 1. 메뉴 window - show view - navigator (없으면 package explore) 드래그하여 왼쪽하단 2. File - New - java project - 경로 바탕화면/java1(디렉토리 생성) (- JRE : .. 더보기 [C code] 원형 큐 (Circular Queue) #include #include #define size 10 typedef struct Queue { int front, rear; int * data; }Queue; void EnQ(Queue * q, int data) { if(q->front == (q->rear+1)%size) //FullQ { puts("Queue is Full"); return; } else { q->rear = (q->rear+1)%size; q->data[q->rear] = data; } return; } int DeQ(Queue * q) { if(q->front == q->rear) //EmptyQ { puts("Queue is Empty"); return; } else { q->front = (q->front+1)%siz.. 더보기 [C code] 퀵 정렬 (Quick Sort) #include #include void Swap(int * a, int * b) { int temp = *a; *a = *b; *b = temp; } int Partition(int arr[], int l, int r) { int pivot = arr[r]; int smll = l-1; // pivot보다 작은 수 찾는 index // pivot보다 큰 값이 있으면, arr[smll]과 바꾸기 for(int bg=l ; bg 더보기 [C code] 합병 정렬 (Merge Sort) #include #include // Function to merge an array // with l(left), m(middle), r(right) index void Merge(int arr[], int l, int m, int r) { int i, j, k; // Sizes of arrays int n1 = m-l+1; // l ~ m int n2 = r-m; // m+1 ~ r // Copy data to temp array L[] and R[] int L[n1]; int R[n2]; for(i=0 ; i 더보기 이전 1 ··· 32 33 34 35 36 37 38 다음