목록Algorithm (187)
:: ADVANCE ::
dovelet 14 단계 BFS 도망간 소를 잡아라 / catch_cow http://59.23.113.171/30stair/catch_cow/catch_cow.php?pname=catch_cow 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253#include int queue[1000000][2];int visit[1000010]; int main(void){ int start, end; int N, K; scanf("%d%d", &N, &K); if (N == K) { printf("0\n"); return 0; } else if (N > K) { printf("%d\n", N..
dovelet 9 단계 재귀 하노이 탑 (hanoi) http://59.23.113.171/30stair/hanoi/hanoi.php?pname=hanoi 1234567891011121314151617181920212223#include void hanoi(int n, int x, int y, int z){ if (n > 0){ hanoi(n - 1, x, z, y); printf("%d -> %d\n", x, z); hanoi(n - 1, y, x, z); }} int main(void){ int n; scanf("%d", &n); hanoi(n, 1, 2, 3); return 0;}cs 단순히 이동 횟수를 묻는 거라면 2*f(n-1)+1을 재귀로 돌리면 됨이동 경로를 나타내는 문제인데제공된 기본 소스..
dovelet 9단계 재귀 이진수로 바꾸기 (tobin) http://59.23.113.171/30stair/tobin/tobin.php?pname=tobin 1234567891011121314151617181920#include void tobin(int n){ if (n > 1) tobin(n / 2); printf("%d", n % 2);} int main(void){ int n; scanf("%d", &n); tobin(n); printf("\n"); return 0;}cs tobin 함수 안에 printf를 재귀 호출 위에 있으면 10일 때 0101 이 출력되고재귀 호출 다음에 있으면 10일 때 1010이 출력재귀가 끝나야 출력되니까 맨 처음 계산한 값이 맨 마지막에 출력된다이거를 잘 이해하고 ..
dovelet 9단계 재귀 계단 오르기 (upstair) http://59.23.113.171/30stair/upstair/upstair.php?pname=upstair 2015 5/16 123456789101112131415161718192021222324#include int cnt; void stair(int n) { if (n == 0) cnt++; else if (n > 0) { stair(n - 1); stair(n - 2); }} int main(void){ int n; scanf("%d", &n); stair(n); printf("%d\n", cnt); return 0;}cs 2015 1/15 123456789101112131415161718192021222324252627#include ..
dovelet 3단계 for 개 미 (ants) http://59.23.113.171/30stair/ants/ants.php?pname=ants 123456789101112131415161718192021222324252627282930313233#include int abs(int n){ if (n max) { max = temp; } if (abs(l / 2 - temp)
dovelet 16 단계 DFS 최단 거리 미로 / maze http://59.23.113.171/30stair/maze/maze.php?pname=maze 1234567891011121314151617181920212223242526272829303132333435363738394041424344#include int n, m, min = 9999;char map[25][25]; void dfs(int y, int x, int cnt){ if (y == 1 && x == m) { if (min > cnt) min = cnt; return; } map[y][x] = '1'; if (map[y - 1][x] == '0') dfs(y - 1, x, cnt + 1); if (map[y][x - 1] == '0..
dovelet 29 단계 수학 술 취한 간수 / jailer http://59.23.113.171/30stair/jailer/jailer.php?pname=jailer 12345678910111213141516171819202122232425#include int main(void){ int n, i, j, cnt = 0; int check[110] = { 0, }; scanf("%d", &n); for (i = 1; i
ALGOSPOT stack Mismatched Brackets https://algospot.com/judge/problem/read/BRACKETS2 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 #include #include char input[50]; char stack[50]; int out[50]; int main(void) { int i, result = 0, n = 0, index = 0; gets(input); for (i = 0; i
dovelet 28 단계 나머지 연산자 cd 굽기 (cdrw) http://59.23.113.171/30stair/cdrw/cdrw.php?pname=cdrw 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #include int cdrw[20] = { 0, 1, 2, 3, 3, 4, 4, 5, 5, 6, 7, 8, 8, 9, 9, 10, 11, 12, 12, 12, }; int main(void) { int n, t; scanf("%d", &n); t = (n / 19) * 12 + cdrw[n % 19]; printf("%d\n", t); return 0; } cs
dovelet 13 단계 stack 괄호의 값 (paren) http://59.23.113.171/30stair/paren/paren.php?pname=paren 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 #include #include char input[50]; char stack[50]; int out[50]; int main(void) { int i, result = 0, n = 0, index = 0; gets(input); for (i = 0; i