백준 1260번 문제. DFS와 BFS [Point] 배열을 적절히 활용하여 인접여부를 나타내주는 인접행렬과 큐를 구현 C언어만으로 구현했다.기본적인 DFS와 BFS, 그리고 Queue의 개념만 잘 알고 있으면 문제없이 풀 수 있다.전역변수나 지역변수 선언은 그냥 입맛대로 알아서 선언했다. N은 전역변수로 들어가는게 더 이뻤을것같지만... DFSvisit,BFSvisit : 각 정점의 방문 여부(방문시 1, 미방문은 0)를 나타내주는 배열 변수. 어디에서 쓰냐에 따라 BFSvisit과 DFSvisit으로 구분해두었다Graph : 정점간의 연결 여부를 알 수 있는 인접행렬 (Adjacency Matrix). 인접리스트를 활용하는 방법도 있으나 구현의 용이성은 행렬 쪽이 좀 더 난 편하다queue : BFS..
알고리즘의 꽃, 그래프. G=(V,E) 로 표현한다.V는 정점을, E는 간선을 의미한다. 크게 방향성 유무(Directed,Undirected)와 사이클 존재 유무(Cyclic,Acyclic)로 구분하는 듯 하다.최소신장트리 알고리즘, 순회 알고리즘 등 많은 알고리즘이 그래프에서 파생되어 나온다. 1. Graph.h 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051#ifndef GRAPH_H#define GRAPH_H #include #include enum VisitMode {Visited,NotVisited}; typedef int ElementType; typedef struct t..
백준 1924번. 2007년 [Point] 모드 연산 총 날짜(sum_days)를 계산하고 7로 나눈 모드 값을 구해서 매칭시키면 된다. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253#include int main(){ int month,day,x; int sum_days=0; scanf("%d%d",&month,&day); month--; while(month>0){ if(month==4 || month==6 || month==9 || month==11){ x=30; } else if(month==2){ x=28; } else{ x=31; } sum_days+=x; month..
백준 11720번 문제. 숫자의 합 [Point] 자료형의 범위에 주의할 것 처음엔 두번째 입력을 long long 형으로 "하나의 숫자인것처럼" 받아버린 후,10씩 나눠가면서 각 자리 숫자를 더하려고 했다.예제는 제대로 출력이 되었지만 계속 오류가 떠서 확인해보니 long long 형으로도 100자리 숫자는 도저히 커버가 안되는 것이었다.... 그래서 문자열로 받는 방법을 택했다. 아스키코드상,'0'=48'1'=49'2'=50..... 이런 식이기 때문에 '0'을 빼주면 해당 값이 나온다. 12345678910111213141516171819#include int main() { int cnt,i; int sum = 0; char input[101]; scanf("%d", &cnt); scanf("%s..
1. qsort() C언어 stdlib에서 제공해주는 퀵소트 함수 비교함수를 따로 만들고qsort(배열,배열의 크기,배열 요소 하나의 크기,비교함수)에 인자를 알맞게 넣어주면 된다. 123456789101112131415161718192021222324252627282930#include #include int compare(const void* a,const void* b){ int* aa=(int*) a; int* bb=(int*) b; return *aa - *bb;} int main(){ int arr[]={5,4,2,1,7,8}; int i; int size=sizeof(arr)/sizeof(arr[0]); for(i=0;i
데이터 집합이 오름차순 정렬되어 있다는 전제 하에 1. 탐색 범위를 절반(1/2)씩 줄여나가면서2. 중앙요소 값을 계속해서 비교.3. 집합의 크기가 n이라 할 때, 최대 비교 횟수 x = Log2n (예 : 1000개의 데이터 집합 내에서 최대 10번의 탐색으로 원하는 대상을 찾을 수 있다) ======================================================== 12345678910111213141516171819202122232425/* DataSet [] : 데이터 집합 정보 Size : 데이터 집합의 크기 Target : 찾고자 하는 탐색 대상 */ElementType BinarySearch(ElementType DataSet[],int Size,ElementType ..
*자기 구성 순차 탐색법 : Self-Organizing Sequential Search: 자주 사용되는 항목을 데이터 집합의 앞쪽에 배치시켜 순차 탐색의 효율을 높인다: 자주 사용되는 항목을 어떻게 선별하는가에 따라 다음 3가지로 나눔 (전진 이동법, 전위법, 빈도 계수법) ============================================================ 링크드 리스트 기준으로 작성. 앞서 SLL 코드들이 구현되어있다고 가정하고 추가할 부분만 구현 1. 전진 이동법 (Move To Front) 탐색된 항목을 데이터 집합의 맨 앞으로 "한번에" 보내버린다. 123456789101112131415161718192021222324252627 Node* SLL_MoveToFront(..
미리 정렬되어있거나 역순으로 정렬되어있는 경우 최악의 성능: N(N-1) / 2: 버블 정렬이나 삽입 정렬(최악)의 성능과 동일하지만 이런 경우가 일어나는 일은 흔치 않다: 재귀호출의 깊이 x 비교횟수: 평균적으로 nlog2n: 정확히는 1.39log2n -------------------------------------------------------------------------------------------------내 방식대로 구현한 코드 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647#include void QuickSort(int DataSet[],int Left,int Right){ ..
- Total
- Today
- Yesterday
- 제습기 내돈내산
- 겨드랑이 지방종
- 타르코프 스파 관광
- 겨드랑이 혹
- 자취요리
- 겨드랑이 멍울
- 물이 안나와요
- 스파 파트 4
- 휘센 제습기
- 스파투어 파트4
- 스텐팬 세척
- 스파관광 파트4
- 아난티앳강남
- 피지낭종 후기
- 타르코프 스파 투어
- 피지낭종 제거수술
- 구글애드센스 혐오광고
- 혐오광고 제거
- 급수에러
- 스텐팬 탄 자국
- 구글애드센스 광고차단
- 건강검진 겨드랑이
- 친구들호캉스
- 사마귀광고 제거
- 스텐팬 갈색
- 피지낭종 수술후기
- 싱크대 단수
- 스텐팬 갈변
- 겨드랑이 초음파
- 제습기 후기
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |