목록Algorithm (187)
:: ADVANCE ::
dovelet 29 단계 수학 삼각형 만들기 / triangle1 http://59.23.113.171/30stair/triangle1/triangle1.php?pname=triangle1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 #include long long check[51000]; int main(void) { int n, cnt = 0; scanf("%d", &n); int a, b, c; for (a = 1; a
dovelet 16 단계 DFS 단지 번호 붙이기 / danji http://59.23.113.171/30stair/danji/danji.php?pname=danji 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 #include int map[50][50]; int danji[50][50]; int total = 1; int count[50]; void dfs(in..
dovelet 21 단계 DP SCV 자원채취 / SCV http://59.23.113.171/30stair/scv/scv.php?pname=scv 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 #include int map[110][110]; int scv[110][110]; int main(void) { int n, i, j; scanf("%d", &n); for (i = 1; i
dovelet 3 단계 for 소다수 (ncpc_soda) http://59.23.113.171/30stair/ncpc_soda/ncpc_soda.php?pname=ncpc_soda 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 #include int main(void) { int have, pick, need, temp; int namerge = 0, mok = 0, drink = 0; scanf("%d%d%d", &have, &pick, &need); mok = (have + pick) / need; namerge = (have + pick) % need; while (mok != 0) { drink += mok; temp = mok + name..
dovelet 9단계 재귀 뒤집어 더하기 (radd) http://59.23.113.171/30stair/radd/radd.php?pname=radd 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 #include int radd(int n) { int temp = 0; while (n) { temp = temp * 10 + n % 10; n /= 10; } return temp; } int main(void) { int n, m; scanf("%d%d", &n, &m); printf("%d\n", radd(radd(n) + radd(m))); return 0; } cs
dovelet 9 단계 재귀 네 수의 합 (hap) http://59.23.113.171/30stair/hap/hap.php?pname=hap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 #include int hap(int a, int b) { return a + b; } int main(void) { int num[4], i; for (i = 0; i
dovelet 9 단계 재귀 big dance (dance) http://59.23.113.171/30stair/dance/dance.php?pname=dance 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 #include int sum; void dance(int start, int end, int n) { int temp; if (start == end-1) { sum += start * end; return; } if (start == end) return; temp = start + (n - 1) / 2; dance(start, temp, temp - start + 1); temp += 1; ..
깊이 우선 탐색 (Depth First Search) 탐색알고리즘으로는 깊이 우선 탐색(DFS : Depth First Search)과 너비 우선 탐색(BFS : Breath First Search)이 있다. 깊이 우선 탐색(이하 DFS)은 일반적으로 구현할 때는 스택(stack)을 이용하고,트리나 그래프 같은 자료구조에서 데이터를 탐색할 때 사용하는 알고리즘이다. DFS 알고리즘은 더이상 나아갈 길이 보이지 않을 만큼 깊이 찾아가면서 탐색한다.만약, 나아갈 길이 존재하지 않으면 이전의 위치로 돌아와 찾아가지 않은 다른 길로 뻗어 나가면서 탐색해 나간다. 그래프를 보면 숫자가 있는 원은 정점(Vertex)라고 하고, 정점과 정점을 잇는 연결선을 간선(Edge)이라고 한다. 이제 위 그래프를 DFS를 이용..
dovelet 8 단계 함수 13일의 금요일 (friday) http://59.23.113.171/30stair/friday/friday.php?pname=friday 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 #include int monthend[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; int day[7]; int main(void) { int n; int year, month, date, count = 2; scanf("%d", &n); for (year = 1900; year
dovelet 2 단계 if 두 현의 교차 유무 (cross) http://59.23.113.171/30stair/cross/cross.php?pname=cross 123456789101112131415161718192021222324252627282930313233#include using namespace std; int main(void){ int n1, n2, m1, m2, temp; cin >> n1 >> n2; cin >> m1 >> m2; if (n1 > n2) { temp = n2; n2 = n1; n1 = temp; } temp = 0; if (n1