๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋ฐ˜์‘ํ˜•

Programming

(40)
#5_๋ฆฌ์ŠคํŠธ ๋ฌธ์ œ2(๋‹คํ•ญ์‹, ๋ถ€๋ถ„์ง‘ํ•ฉ, ํ•ฉ์ง‘ํ•ฉ, ๊ต์ง‘ํ•ฉ) ๋‹คํ•ญ์‹ ๋ง์…ˆ - ๋‹คํ•ญ์‹์„ ํ—ค๋” ๋‹จ์ผ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋กœ ๊ตฌํ˜„ #include #include typedef struct node { int coef; int exp; struct node* next; }node; typedef struct { node* H; }list; node* getnode (node* p) { if (p == NULL) { p = (node*)malloc(sizeof(node)); p->next = NULL; } return p; } node* appendTerm (node* k, int c, int e) { node* t = NULL; t = getnode(t); t->coef = c; t->exp = e; t->next = NULL; k->next = t; k = t; return k;..
#4_ ๋ฆฌ์ŠคํŠธ ๋ฌธ์ œ - node ์ •์˜ typedef struct node { char elem; struct node* next; }node; - list ์ •์˜ typedef struct { struct node* H; }list; - node ์ƒ์„ฑ node* getnode (node* p) { if (p == NULL) { p = (node*)malloc(sizeof(node)); //nodeํ• ๋‹น p->next = NULL; } return p; } - traverse : ์ˆœํšŒ void traverse (list* L) { node* p = L->H; while (p->next != NULL) { printf("%c\n", p->elem); p = p->next; } } - isEmpty int isEmpty (list*..
#4. ๋ฆฌ์ŠคํŠธ : ๋ฐ์ดํ„ฐ๊ตฌ์กฐ์˜ ์ถ”์ƒํ˜•(ADT) : ์—ฐ์†์ ์ธ ์ž„์˜ ๊ฐœ์ฒด๋“ค์„ ๋ชจ๋ธ๋ง - element์— ๋Œ€ํ•œ ์ ‘๊ทผ ๋„๊ตฌ - boolean isEmpty() - int size() - iterator elements() - element get(r) - element set(r,e) - add(r,e) - addFirst(e) - addLast(e) - element remove(r) - element removeFirst() - element removeLast() - invalidRankException() : ์ž˜๋ชป๋œ list์— ์ ‘๊ทผํ•˜๋ คํ–ˆ์„ ๋•Œ - fullListException() : list ์›์†Œ๊ฐ€ ๋‹ค ์ฐผ์žˆ์„ ๋•Œ - emptyListException() : list๊ฐ€ ๋น„์–ด์žˆ์„ ๋•Œ - get() - set(r,e) -..
#3_๋ฐฐ์—ด๋ฌธ์ œ [1] ๋ฐฐ์—ด์˜ ํฌ๊ธฐ์™€ ๋ฐฐ์—ด์˜ ์ •์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ๋’ค์ง‘์„ ๋ฐฐ์—ด์˜ ํฌ๊ธฐ์™€ ๋’ค์ง‘์„ ๋ฐฐ์—ด ์ธ๋ฑ์Šค๋ฅผ ์ž…๋ ฅ๋ฐ›๊ณ  ๋’ค์ง‘๊ธฐ๋ฅผ ํ•˜๊ณ  ์ถœ๋ ฅ #include void change (int x[], int start, int end) { int tmp; int dis = end - start; int N; if (dis%2 == 0) { N = (end - start)/2; } else { N = (end - start)/2 + 1; } for (int i = start; i < start + N; i++) { tmp = x[i]; x[i] = x[end + start - i]; x[end + start - i] = tmp; } } int main () { int n, x[100]; int cn, cx[100]; scanf("%d..
#2_๋ฌธ์ œ [1] 1๋ถ€ํ„ฐ n๊นŒ์ง€ ํ•ฉ ๊ตฌํ•˜๊ธฐ #include int Sum (int n) { if (n == 1) return 1; else return n + Sum (n - 1); } int main () { int n; scanf("%d", &n); printf("%d\n", Sum(n)); return 0; } [2] ๊ฐ ์ž๋ฆฟ์ˆ˜ ๋†’์€์ž๋ฆฌ๋ถ€ํ„ฐ ์ถœ๋ ฅ #include void digit (int n) { if (n < 10) { printf("%d\n", n); } else { digit(n/10); printf("%d\n", n%10); } } int main () { int n; scanf("%d", &n); digit(n); return 0; } [3]๊ฐ ์ž๋ฆฟ์ˆ˜ ๋‚ฎ์€์ž๋ฆฌ๋ถ€ํ„ฐ ์ถœ๋ ฅ #include void di..
#2. ์žฌ๊ท€ - ์žฌ๊ท€์ (recursive) : ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ž์‹ ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ •์˜๋œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ - ๋น„์žฌ๊ท€์ (nonrecursive) : ์žฌ๊ท€์ ์˜ ๋ฐ˜๋Œ€ - ์žฌ๊ท€ ์ผ€์ด์Šค(recursion) : ๋‹ค์Œ ์žฌ๊ท€ํ˜ธ์ถœ์„ ํ•˜๋Š” ๋ถ€๋ถ„์œผ๋กœ ์ž‘์•„์ง„ subproblem์„ ๋Œ€์ƒ์œผ๋กœ ์ž‘์„ฑ - ๋ฒ ์ด์Šค ์ผ€์ด์Šค(base case) : ์ข…๋ฃŒ์กฐ๊ฑด. subproblem์ด ์ถฉ๋ถ„ํžˆ ์ž‘์•„์ง€๋ฉด ์ง์ ‘ ํ•ด๊ฒฐ n๋ถ€ํ„ฐ 1๊นŒ์ง€ ํ•ฉ์„ ๊ตฌํ•˜๋Š” Sum ํ•จ์ˆ˜์˜ ์˜์‚ฌ์ฝ”๋“œ๋ฅผ ์˜ˆ์‹œ๋กœ ๋ณด๋ฉด, n = 3์ผ ๋•Œ ์ž‘๋™์›๋ฆฌ๋ฅผ ์‚ดํŽด๋ณด๋ฉด, - ๋ฒ ์ด์Šค ์ผ€์ด์Šค : ์žฌ๊ท€ํ•จ์ˆ˜์—์„œ ํ•ญ์ƒ ๊ฐ€์ ธ์•ผ ํ•˜๋Š” ๋ถ€๋ถ„์œผ๋กœ ์ด ๋ถ€๋ถ„์€ ์žฌ๊ท€ ์—†์ด ์ง์ ‘ ํ•ด๊ฒฐ - ์ง„ํ–‰ ๋ฐฉํ–ฅ : ์žฌ๊ท€ํ˜ธ์ถœ์€ ํ•ญ์ƒ ๋ฒ ์ด์Šค ์ผ€์ด์Šค๋ฅผ ํ–ฅํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ์ง„ํ–‰ - ์ •์ƒ์ž‘๋™ ๊ฐ€์ • : ๋ชจ๋“  ์žฌ๊ท€ํ˜ธ์ถœ์ด ์ •์ƒ ์ž‘๋™ํ•œ๋‹ค๊ณ  ๊ฐ€์ • - ์ ์ ˆํ•œ ์‚ฌ์šฉ : ์„ฑ๋Šฅ์ €ํ•˜ ๋•Œ๋ฌธ์— ๊ผญ ํ•„..
#1_๋ฌธ์ œ 1. ๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ +,-๋งŒ ์‚ฌ์šฉํ•˜์—ฌ ๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” modulo()ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค๊ธฐ #include int modulo (int a, int b) { int div = 0; while (a>=b) { a -= b; } return a; } int main () { int a,b; int answer; scanf("%d %d", &a, &b); answer = modulo(a,b); printf("%d\n", answer); return 0; } 2. ์ตœ๋Œ€ 1ํ–‰ ๊ตฌํ•˜๊ธฐ ๋น„ํŠธํ–‰๋ ฌ์—์„œ 1์„ ๊ฐ€์žฅ ๋งŽ์ด ํฌํ•จํ•˜๊ณ  ์žˆ๋Š” ํ–‰๋ ฌ์˜ ์ธ๋ฑ์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” mostOnes() ๋งŒ๋“ค๊ธฐ #include int mostOnes (int A[][100], int n) { int row = 0, jmax = 0; for (in..
#1. ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ถ„์„ ์•Œ๊ณ ๋ฆฌ์ฆ˜(algorithm) : ์ฃผ์–ด์ง„ ๋ฌธ์ œ๋ฅผ ์œ ํ•œํ•œ ์‹œ๊ฐ„ ๋‚ด์— ํ•ด๊ฒฐํ•˜๋Š” ๋‹จ๊ณ„์  ์ ˆ์ฐจ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ(data structure) : ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ์งํ•˜๊ณ  ์ ‘๊ทผํ•˜๋Š” ์ฒด๊ณ„์  ๋ฐฉ์‹ ๐Ÿ“์ข‹์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ž€? - ์ž‘์—…์— ์†Œ์š”๋˜๋Š” ์‹คํ–‰์‹œ๊ฐ„(์‹œ๊ฐ„๋ณต์žก๋„) - ๊ธฐ์–ต์žฅ์†Œ ์‚ฌ์šฉ๋Ÿ‰(๊ณต๊ฐ„๋ณต์žก๋„) - ์‹คํ–‰์‹œ๊ฐ„์€ Input size์™€ ํ•จ๊ป˜ ์„ฑ์žฅ - ์ตœ์•…์‹คํ–‰์‹œ๊ฐ„(worst running time)์— ์ง‘์ค‘ โ— ์‹คํ–‰์‹œ๊ฐ„ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ• 1. ์‹คํ—˜์  ๋ฐฉ๋ฒ• - ์‹œ์Šคํ…œ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ์‹ค์ œ ์‹คํ–‰์‹œ๊ฐ„ ์ •ํ™•ํžˆ ์ธก์ • - ์‹คํ—˜์— ํฌํ•จ๋˜์ง€ ์•Š์€ ์ž…๋ ฅ์— ๋Œ€ํ•œ ์‹คํ–‰์‹œ๊ฐ„์ด ์ œ๋Œ€๋กœ ๋ฐ˜์˜๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค - ๋™์ผํ•œ ์†Œํ”„ํŠธ์›จ์–ด์™€ ํ•˜๋“œ์›จ์–ด ํ™˜๊ฒฝ์—์„œ ์‹คํ—˜์„ ์ง„ํ–‰ํ•ด์•ผํ•œ๋‹ค 2. ์ด๋ก ์  ๋ฐฉ๋ฒ• - ๋ชจ๋“  ์ž…๋ ฅ ๊ฐ€๋Šฅ์„ฑ์„ ๊ณ ๋ คํ•œ๋‹ค - ํ•˜๋“œ์›จ์–ด๋‚˜ ์†Œํ”„ํŠธ์›จ์–ด์— ๋ฌด๊ด€ํ•˜๊ฒŒ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์†๋„ ํ‰๊ฐ€ํ•  ..

๋ฐ˜์‘ํ˜•