본문 바로가기

알고리즘 문제풀이

(15)
[Heap]Heap Sort 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..
[Heap]MaxHeap구성 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 #include #define NUM_DATA (8) #define MAX_DATA (NUM_DATA) #define MAX_HEAP (MAX_DATA+1) #define LAST_NODE (MAX_DATA) int heap[MAX_HEAP]; int lastnode = 0; int Heap_Push_Maxheap(int *heap, int size, int *lastnode, int d) {..
[HEAP] minheap 구성 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 #include #define NUM_DATA (8) #define MAX_DATA (NUM_DATA) #define MAX_HEAP (MAX_DATA+1) #define LAST_NODE (MAX_DATA) int heap[MAX_HEAP]; int lastnode = 0; int Heap_Push_Minheap(int *heap, int size, int *lastnode, int d) { i..
SegmentTree[구간의 최대값 구하기] 정수로 이뤄진 수열을 입력 받은 다음, 수열의 임의의 연속된 구간의 최대값을 구하는 프로그램을 작성한다. 수열의 원소는 번호가 매겨지는데, 맨 앞의 원소부터 1, 2, ... 순으로 숫자가 매겨진다. [입출력 예시] 입력 : 4 3 1 3 2 4 1 2 2 4 1 1 출력 : 3 4 1 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 #include #define maxx(a,b) ((a)>(b)?(a):(b)) #define NUM_DATA (50002) //5만 #define MAX_TREE (NUM_DATA*..
Visual Studio 편집 창 수직 분할 단축키 Alt+W+N 입력하고 Alt+W+V : 현재 커서가 있는 창이 한개 더 생기면서 창이 수직 분할되어 보여짐. Alt+W+V : 현재 커서에 위치한 모든 창들을 모두 수직분할해 보여짐.
[BOJ.16985번] Maaaaaaaaaze 문제 링크 : https://www.acmicpc.net/problem/16985 이 문제는 완전탐색과 bfs와 극한의 시뮬레이션이 포함된 문제이다..!! 처음에 문제를 봤을 때 극한의 문제다!! 하고 겁을 먹었지만 막상 구현을 해보니 그리 어렵지 않은 문제였다. 먼저, 5개 층의 순서를 섞어줄 때 #include에 있는 nextpermutation함수를 사용해 조합을 만들어주었다. 5개 층의 순서가 결정되면, 이제 시계방향으로 각층마다 돌려준다. 이때, 반시계방향은 고려할 필요가 없는게 어차피 시계방향으로 3번 돌리면 제자리로 오고 모든 경우를 본 것이기 때문이다. 시계방향으로 돌려주는 함수는 rotation함수로 main에서 5중포문으로 조합을 구현하였다....(선생님,,,설마 코드에 6중포문을 넣으..
1e9 2e9 차이 알고리즘 문제를 풀다 보면 무한대값을 지정해야하고 접근해야할 경우가 있다. 1e9 = 1*109 = 1000000000 2e9 = 2*109 = 2000000000 2e9는 int 범위에서 무한대 값을 표현할 때 주로 쓰인다. 이외에도 0x7ffffff, LONG_MAX로 표현할 수 도 있다.