목록Algorithm (187)
:: ADVANCE ::
[List] List 구현 연습 입력 0 -> init 1 # -> front 추가 + num 2 # -> tail 추가 + num 3 -> front delete 4 -> tail delete 5 # -> # number list 에서 삭제 6 -> print 더보기
[문자열] 접미어 배열 & LCP 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108// 접미어 배열 suffix array #include #define Size 100 char string[Size] = "banana";int suffixArray[Size];int lcp[Size];int strsize; void init(){ int i; for (i = 0; i
[문자열 검사] Boyer_moore 알고리즘 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162#include char string[] = "a pattern matching algorithm";char input[10] = "rithm";int size, stringsize;int skip[10]; int _strlen(char *str) { int size = 0; while (*(str + size) != '\0') size++; return size;} void makeskip(){ int i; for (i = 0; i
[문자열 검사] 카프-라빈 알고리즘 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899// 해시 값 함수를 이용#include char string[] = "hello my name is ksj";char input[10];int size;int strhash[30];int inputhash; int _strlen(char *str) { int size = 0; while (*(str + size) != '\0') siz..
[문자열 검사] KMP 알고리즘 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071#include char string[] = "naabcdabcdefmeaabcdabcefksj";char input[10] = "abcdabcef";int next[50];int size, stringsize; int _strlen(char *str) { int size = 0; while (*(str + size) != '\0') size++; return size;} void makenext(){ int i; next[0] = 0; ..
가장 긴 증가하는 부분수열 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455#include #define N 6 int number[N] = { 10, 20, 10, 30, 40, 50 };int count[N];int index[N]; void init(){ for (int i = 0; i
순열 Permutation 12345678910111213141516171819202122232425262728293031323334353637383940414243#include #define N 4#define R 3 int number[10]; int data[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 }; void swap(int *first, int *second) { int temp = *first; *first = *second; *second = temp;} void print(int n){ for (int i = n - 1; i >= 0; i--) { printf("%d ", number[i]); } printf("\n");} void permutation(int ..
BAEKJOON ONLINE JUDGE 11378 열혈강호 https://www.acmicpc.net/problem/11378 열혈강호 시리즈 4 네트워크 플로우 이분매칭 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677#include #include #include using namespace std; int n, m, k;vector person[1001];bool visit[1001];int work[1001]; void input(){ int i, cnt, num; scanf("%d %d ..
BAEKJOON ONLINE JUDGE 11377 열혈강호 https://www.acmicpc.net/problem/11377 열혈강호 시리즈 3 네트워크 플로우 이분매칭 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172#include #include #include using namespace std; bool visit[1001];vector person[1001];int work[1001];int n, m, k; void input(){ int i, cnt, num; scanf("%d %d %d", &n, &..
BAEKJOON ONLINE JUDGE 11376 열혈강호 https://www.acmicpc.net/problem/11376 열혈강호 시리즈 2 네트워크 플로우 이분매칭 문제 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667#include #include #include using namespace std; vector work[1001];int n, m;bool visit[1001];int person[1001][2]; void input(){ int i, cnt, num; scanf("%d %d", &n, &m); for (i..