곽길문 ¶
1.koistudy
112-113
#include<stdio.h>
112-113
#include<stdio.h>
int main()
{
{
int r,e,c;
scanf("%d %d %d",&r,&e,&c);
if(r< e-c){
}scanf("%d %d %d",&r,&e,&c);
if(r< e-c){
printf("advertise\n");
}else if(r>e-c){printf("do not advertise\n");
}else if(r==e-c){printf("does not matter\n");
}#include<stdio.h>
#include<math.h>
int main()
{
int a,b,c;
double x1,x2;
#include<math.h>
int main()
{
int a,b,c;
double x1,x2;
scanf("%d %d %d", &a,&b,&c);
x1=(-b+sqrt(b*b-(4*a*c)))/(2*a);
x2=(-b-sqrt(b*b-(4*a*c)))/(2*a);
if(x1==x2){
printf("%g ",x1);
}else if(x1 !=x2){
if(x1>x2)
}
return 0;
}x1=(-b+sqrt(b*b-(4*a*c)))/(2*a);
x2=(-b-sqrt(b*b-(4*a*c)))/(2*a);
if(x1==x2){
printf("%g ",x1);
}else if(x1 !=x2){
if(x1>x2)
printf("%g %g",x1,x2);
else if(x1printf("%g %g",x2,x1);
return 0;
/*115-
#include<stdio.h>
#include<stdio.h>
int main(){
*/
int a;
int sum=0;
scanf("%d",&a);
for(;a >1;a--){
printf("%d",sum+1);
return 0;
}int sum=0;
scanf("%d",&a);
for(;a >1;a--){
sum+=a;
}printf("%d",sum+1);
return 0;
*/
/* 116-
#include<stdio.h>
int main(){
*/
#include<stdio.h>
int main(){
int n,k;
int i=1;
int sum=0;
scanf("%d %d",&n,&k);
while(i<=n){
printf("%d",sum);
return 0;
}int i=1;
int sum=0;
scanf("%d %d",&n,&k);
while(i<=n){
if(i%k ==0){
i++;
}sum+=i;
}i++;
printf("%d",sum);
return 0;
*/
/*119-
#include<stdio.h>
int main(){
*/
#include<stdio.h>
int main(){
int a;
int count=0;
scanf("%d",&a);
a= a*2-1;
for(count=0;count < a;count++)
printf("*");
return 0;
}int count=0;
scanf("%d",&a);
a= a*2-1;
for(count=0;count < a;count++)
printf("*");
return 0;
*/
/*120-
#include<stdio.h>
int main(){
}
*/
#include<stdio.h>
int main(){
}
*/
/*121-
#include<stdio.h>
int main(){
*/
#include<stdio.h>
int main(){
int a;
int i,j;
scanf("%d",&a);
for(i=0;i
printf("\n");
}
for(i=0;i
printf("\n");
}
return 0;
}int i,j;
scanf("%d",&a);
for(i=0;i
for(j=0;j
printf("*");
}printf("\n");
}
for(i=0;i
for(j=a;j>i+1;j--){
printf("*");
}printf("\n");
}
return 0;
*/
122-#include<stdio.h>
int main()
{
{
int a;
int i,j;
scanf("%d",&a);
if(a!=1){
for(i=1;i<10;i++){
printf("%d*%d=%d\n",a,i,a*i);
}
}else if(a==1){
}
}int i,j;
scanf("%d",&a);
if(a!=1){
for(i=1;i<10;i++){
printf("%d*%d=%d\n",a,i,a*i);
}
}else if(a==1){
for(i=1;i<10;i++){
}for(j=2;j<10;j++){
printf("%d*%d=%d ",j,i,j*i);
}printf("%d*%d=%d ",j,i,j*i);
printf("\n");
}
return 0;
2.Swap함수 작성
--#include<stdio.h>
void swap(int *a,int *b);
int main()
{
int main()
{
char x='A',y='B';
printf("x= %c y=%c\n",x,y);swap(&x,&y);
printf("x=%c ,y=%c\n",x,y);
return 0;
printf("x=%c ,y=%c\n",x,y);
return 0;
}
void swap(int *a,int *b)
{
void swap(int *a,int *b)
{
int temp;
temp=*a;
*a=*b;temp=*a;
*b=temp;
}
- 3,4,6,7,9,3,2를 ìž…ë ¥ìœ¼ë¡œ ë„£ì�€ 후 2,3,9,7,6,4,3순서로 ì¶œë ¥í•˜ëŠ” 프로그램ì�„ 작성해보세요.(스íƒ�)
#define MaxSize 7
int stackMaxSize;
int sp=0;
int push(int);
int pop(int *);
int push(int);
int pop(int *);
int main(){
int n=0;
push(3);
push(4);
push(6);
push(7);
push(9);
push(3);
push(2);
if (push(40) == -1)
{
push(3);
push(4);
push(6);
push(7);
push(9);
push(3);
push(2);
if (push(40) == -1)
{
printf("Stack Overflow\n");
}
pop(&n);
printf("pop : %d\n",n);
pop(&n);
printf("pop : %d\n",n);
pop(&n);
printf("pop : %d\n",n);
printf("pop : %d\n",n);
pop(&n);
printf("pop : %d\n",n);
pop(&n);
printf("pop : %d\n",n);
pop(&n);
printf("pop : %d\n",n);
pop(&n);
printf("pop : %d\n",n);
pop(&n);
printf("pop : %d\n",n);
printf("pop : %d\n",n);
pop(&n);
printf("pop : %d\n",n);
pop(&n);
printf("pop : %d\n",n);
pop(&n);
printf("pop : %d\n",n);
pop(&n);
printf("pop : %d\n",n);
if(pop(&n) == -1)
{
printf("Stack Underflow\n");
{
printf("Stack Underflow\n");
}
return 0;
}
return 0;
}
}else
{
{
return -1; // 가튀��姨�찾£�≫때��overflow
}}
}else
{
return -1; //비촱었��≫ 때�� underflow
{
return -1; //비촱었��≫ 때�� underflow
}
}
}
4.BinarySearchê°€ 무엇ì�¸ì§€ ì°¾ì•„ë³´ê³ , 가능하면 한번 구현해보ë�„ë¡� 합시다.(가능하면!)
-ì�´ì§„ íƒ�색ì�€ ì œì–´ê²€ìƒ‰ì—�서 가장 대표ì �ì�¸ 방법으로 한번 비êµ�ë�™ìž‘ì�´ ë��난 후 ê·¸ 결과를 ì�´ìš©í•˜ì—¬ 다ì�Œì—� 비êµ�í• ëŒ€ìƒ�ì�„ ì„ íƒ�하는 방법으로 검색한다. 주어진 파ì�¼ë“¤ì�„ ì�¼ì •한 순서대로 ë°°ì—´ë�œ ìƒ�태ì—�서 ì›�하는 ê°’ì�„ 검색하는 방법ì�´ë‹¤.1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
- 5X5ë°°ì—´ì�„ ìš°ì„ ë°°ì •, 1,2,3,4,5를 ìš°ì„ 0í–‰ì—� ì¶œë ¥, 마지막 4í–‰ì—� ë�„달했ì�„ 때 4ì—´ ì¶œë ¥, 마지막 4í–‰ì—� ë�„달했ì�„ 때 4í–‰ ì¶œë ¥, 0í–‰ì—� ë�„달했ì�„ 때 (ì „ì²´ 행수-1)ë§Œí�¼ ì¶œë ¥ ... 반복....
한송ì�´ ¶
1.koistudy113번 못풀었�
2.Swap함수 작성
#include<stdio.h>
int swap(int *a,int *b);
int main(void){
int a = 4;
int b = 6;
swap(&a,&b);
printf("%d %d",a,b);
return 0;
}
int swap(int *a,int *b){
int temp;
temp= *a;
*a = *b;
*b = temp;
return swap(a,b);
}
4.BinarySearchê°€ 무엇ì�¸ì§€ ì°¾ì•„ë³´ê³ , 가능하면 한번 구현해보ë�„ë¡� 합시다.(가능하면!)
- ì�´ì§„검색ì�€ ì œì–´ê²€ìƒ‰ì—�서 가장 대표ì �ì�¸ 방법ì�´ë‹¤.
- 한번 비êµ� ë�™ìž‘ì�´ ë��난 후, ê·¸ 결과를 ì�´ìš©í•˜ì—¬ 다ì�Œì—� 비êµ�í• ëŒ€ìƒ�(K
(K는 ì°¾ê³ ìž� 하는 ê°’, Ki는 중간 ìž�료 값들)
- 주어진 파ì�¼ë“¤ì�€ ì�¼ì •한 순서대로 ë°°ì—´ë�œ ìƒ�태ì—�서 ì›�하는 ê°’ì�„ 검색하는 방법ì�´ë‹¤
- ì�´ì§„íƒ�색ì�€ ì�´ë¯¸ ë�°ì�´í„°ë“¤ì�´ ì •ë ¬ ë�œ ìƒ�태 + 중복값ì�´ ì—†ì�„ 때 가능한 íƒ�색방법ì�´ë‹¤.
만약 ë�°ì�´í„°ë“¤ì�´ ì •ë ¬ì�´ ë�˜ 있지만 중복값ì�´ 존재하면 중복ë�œ ê°’ 중 하나만 찾으며,
ì •ë ¬ì�´ ë�˜ìžˆì§€ 않ì�€ ë�°ì�´í„°ë“¤ì�„ ì�´ì§„íƒ�색ì�„ 하면 ë�°ì�´í„°ë¥¼ 찾지 못한다.
나머지는 ì§„ì§œ 너무 ì–´ë ¤ì›€
ë�„ìƒ�í�¬ ¶
ë³µìŠµê³¼ì œ
1.KoiStudy 112~113,115~122 - ë¬¸ì œ ë§Žì�€ë�° 별ì°�기같ì�€ê±´ 한거ë�¼ì„œ 몇개 í• ê±° ì—†ì�„ê±°ì—�ìš”.
- 113번 ë¹¼ê³ ëª¨ë‘� 완료.
2.Swap함수 작성
#include <stdio.h>
void swap(int*, int*);
int main(){
int a=5;
int b=2;
printf("a:%d b:%d\n",a,b);
swap(&a,&b);
printf("a:%d b:%d\n",a,b);
return 0;
}
void swap(int* x, int* y){
int temp;
temp=*x;
*x=*y;
*y=temp;
}
3.3,4,6,7,9,3,2를 ìž…ë ¥ìœ¼ë¡œ ë„£ì�€ 후 2,3,9,7,6,4,3순서로 ì¶œë ¥í•˜ëŠ” 프로그램ì�„ 작성해보세요.(스íƒ�)
#include <stdio.h>
int main(){
int arr[7]={0,};
int n,i;
for(i=0 ; i<7 ; i++){
scanf("%d",&n);
arr[i]=n;
}
for(i=6 ; i>=0 ; i--){
printf("%d ",arr[i]);
}
printf("\n");
return 0;
}
4.BinarySearchê°€ 무엇ì�¸ì§€ ì°¾ì•„ë³´ê³ , 가능하면 한번 구현해보ë�„ë¡� 합시다.(가능하면!)
아래와 ê°™ì�€ ì¶œë ¥ì�´ 나오는 프로그램ì�„ 어떻게하면 짤 수 있는지 ìƒ�ê°�해서 ì�¨ë³´ë�„ë¡� 합시다. ê·¸ 방법ì�´ í™•ì‹¤í•˜ë‹¤ê³ ìƒ�ê°�ë�˜ë©´ 짜보아ë�„ 좋아요
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
아래와 ê°™ì�€ ì¶œë ¥ì�´ 나오는 프로그램ì�„ 어떻게하면 짤 수 있는지 ìƒ�ê°�해서 ì�¨ë³´ë�„ë¡� 합시다. ê·¸ 방법ì�´ í™•ì‹¤í•˜ë‹¤ê³ ìƒ�ê°�ë�˜ë©´ 짜보아ë�„ 좋아요
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
6.LinkedList를 êµ¬í˜„í• ìˆ˜ 있는 구조체를 하나 ë§Œë“¤ê³ , ê·¸ 구조체를 ì�´ìš©í•´ linkedlist하나를 만들어봅시다.
#include <stdio.h>
#include <stdlib.h>
struct Linkedlist{
int data;
struct Linkedlist *next;
};
int main(){
struct Linkedlist *p1 = (struct Linkedlist*)malloc(sizeof(struct Linkedlist));
struct Linkedlist *p2 = (struct Linkedlist*)malloc(sizeof(struct Linkedlist));
p1->data = 10;
p1->next = p2;
p2->data = 20;
p2->next = NULL;
printf("%d\n",p1->next->data);
return 0;
}
7.ë�™ì �í• ë‹¹ì�„ ì�´ìš©í•´ listê°€ 몇개 ì—°ê²°ë�˜ì–´ìžˆëŠ” 구조를 만들어봅시다. list->next->next = ë�™ì �í• ë‹¹;
#include <stdio.h>
#include <stdlib.h>
struct Linkedlist{
int data;
struct Linkedlist *next;
};
int main(){
struct Linkedlist *p1 = (struct Linkedlist*)malloc(sizeof(struct Linkedlist));
p1->next=(struct Linkedlist*)malloc(sizeof(struct Linkedlist));
p1->next->next=(struct Linkedlist*)malloc(sizeof(struct Linkedlist));
p1->data=10;
p1->next->data=20;
p1->next->next->data=30;
printf("%d\n",p1->data);
printf("%d\n",p1->next->data);
printf("%d\n",p1->next->next->data);
return 0;
}
8.LinkedList를 ë§Œë“¤ê³ , 리스트 dataì—� 4,5,3,7,12,24,2,9ê°€ 들어가ë�„ë¡� 해봅시다.
ì˜ˆìŠµê³¼ì œ
1.Koistudy163
2.163번 ë¬¸ì œë¥¼ í’€ê³ , ê·¸ ë¬¸ì œë¥¼ 어떻게 ì ‘ê·¼í•˜ì˜€ëŠ”ì§€ ë§�해봅시다.
2.163번 ë¬¸ì œë¥¼ í’€ê³ , ê·¸ ë¬¸ì œë¥¼ 어떻게 ì ‘ê·¼í•˜ì˜€ëŠ”ì§€ ë§�해봅시다.
#include <stdio.h>
int main(){
char arr[9];
int n;
int i;
scanf("%d",&n);
scanf("%s",arr);
for(i=0 ; i<8 ; i++){
printf("%c",arr[i]+n);
}
printf("\n");
return 0;
}
3.문ìž�ì—´ì�´ 대ì¹ì�¸ê²½ìš° Palindrome, 아닌경우 Not Palindromeì�„ ì¶œë ¥í•˜ëŠ” 프로그램ì�„ 작성해봅시다.
level, racecar, deed는 palindrome, sadfds는 not Palindrome
level, racecar, deed는 palindrome, sadfds는 not Palindrome
황혜림 ¶
1.6.1.1 ë³µìŠµê³¼ì œ
1.KoiStudy 112~113,115~122 - ë¬¸ì œ ë§Žì�€ë�° 별ì°�기같ì�€ê±´ 한거ë�¼ì„œ 몇개 í• ê±° ì—†ì�„ê±°ì—�ìš”.
2.Swap함수 작성
�진 �색.
수행 ê³¼ì •.
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
#include <stdio.h>
void Swap(int *a, int *b);
int main()
{
int a=4;
int b=9;
printf("변경 ì „ : a = %d, b = %d\n",a,b);
Swap(&a,&b);
printf("변경 후 : a = %d, b = %d\n",a,b);
return 0;
}
void Swap(int *a,int *b)
{
int temp;
temp=*a;
*a=*b;
*b=temp;
}
3.3,4,6,7,9,3,2를 ìž…ë ¥ìœ¼ë¡œ ë„£ì�€ 후 2,3,9,7,6,4,3순서로 ì¶œë ¥í•˜ëŠ” 프로그램ì�„ 작성해보세요.(스íƒ�)
#include <stdio.h>
int main()
{
int arr[7];
int sp=0;
while(1)
{
if(sp==7)
{
break;
}
scanf("%d",&arr[sp++]);
}
while(1)
{
if(sp==0)
break;
printf("%d ",arr[--sp]);
}
return 0;
}
4.BinarySearchê°€ 무엇ì�¸ì§€ ì°¾ì•„ë³´ê³ , 가능하면 한번 구현해보ë�„ë¡� 합시다.(가능하면!)ì�´ì§„ íƒ�색.
- ì •ë ¬ë�œ ë�°ì�´í„° ì§‘í•©ì—�서 ì‚¬ìš©í• ìˆ˜ 있는 ê³ ì†� íƒ�색 ì•Œê³ ë¦¬ì¦˜ 입니다.
- ì�´ì§„ íƒ�색ì�´ë�¼ëŠ” ì�´ë¦„ì�€ ì•Œê³ ë¦¬ì¦˜ì�˜ 핵심ì�´ íƒ�색 범위를 1/2씩 줄여나가는 ë°©ì‹�ì—� 있기 때문ì—� 붙여진 것입니다.
- ì�´ì§„ íƒ�색ì�´ë�¼ëŠ” ì�´ë¦„ì�€ ì•Œê³ ë¦¬ì¦˜ì�˜ 핵심ì�´ íƒ�색 범위를 1/2씩 줄여나가는 ë°©ì‹�ì—� 있기 때문ì—� 붙여진 것입니다.
- 1. ë�°ì�´í„° ì§‘í•©ì�˜ 중앙ì—� 있는 요소를 ê³ ë¦…ë‹ˆë‹¤.
- 2. 중앙 요소ì�˜ ê°’ê³¼ ì°¾ê³ ìž� 하는 목표 ê°’ì�„ 비êµ�합니다.
- 3. 목표 ê°’ì�´ 중앙 요소ì�˜ 값보다 작다면 중앙ì�„ 기준으로 ë�°ì�´í„° ì§‘í•©ì�˜ 왼편ì—� 대해 새 로 검색ì�„ ìˆ˜í–‰í•˜ê³ í�¬ë‹¤ë©´ 오른편ì—� 대해 ì�´ì§„ íƒ�색ì�„ 새로ì�´ 수행합니다.
- 4. íƒ�색ì�˜ 완료 ë� 때까지 1 ~ 3번 ê³¼ì •ì�„ 반복합니다.
- 2. 중앙 요소ì�˜ ê°’ê³¼ ì°¾ê³ ìž� 하는 목표 ê°’ì�„ 비êµ�합니다.
- 3. 목표 ê°’ì�´ 중앙 요소ì�˜ 값보다 작다면 중앙ì�„ 기준으로 ë�°ì�´í„° ì§‘í•©ì�˜ 왼편ì—� 대해 새 로 검색ì�„ ìˆ˜í–‰í•˜ê³ í�¬ë‹¤ë©´ 오른편ì—� 대해 ì�´ì§„ íƒ�색ì�„ 새로ì�´ 수행합니다.
- 4. íƒ�색ì�˜ 완료 ë� 때까지 1 ~ 3번 ê³¼ì •ì�„ 반복합니다.
#include <stdio.h>
int binary (int arr[], int low, int high, int key);
int main()
{
int arr[10]={1,3,13,15,16,17,22,26,32,50};
int key;
int search;
scanf("%d",&key);
search=binary(arr,0,9,key);
if(search==1)
printf("Find");
else
printf("Not Find");
return 0;
}
int binary(int arr[], int low, int high, int key)
{
int mid;
while(low<=high)
{
mid=(low+high)/2;
if(arr[mid]==key)
return 1;
else if(arr[mid]>key)
high=mid-1;
else
low=mid+1;
}
return 0;
}
5.아래와 ê°™ì�€ ì¶œë ¥ì�´ 나오는 프로그램ì�„ 어떻게하면 짤 수 있는지 ìƒ�ê°�해서 ì�¨ë³´ë�„ë¡� 합시다. ê·¸ 방법ì�´ í™•ì‹¤í•˜ë‹¤ê³ ìƒ�ê°�ë�˜ë©´ 짜보아ë�„ 좋아요 1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
6.LinkedList를 êµ¬í˜„í• ìˆ˜ 있는 구조체를 하나 ë§Œë“¤ê³ , ê·¸ 구조체를 ì�´ìš©í•´ linkedlist하나를 만들어봅시다.
#include <stdio.h>
struct node{
int data;
struct node *next;
};
int main()
{
struct node *list=(struct node*)malloc(sizeof(struct node));
return 0;
}
7.ë�™ì �í• ë‹¹ì�„ ì�´ìš©í•´ listê°€ 몇개 ì—°ê²°ë�˜ì–´ìžˆëŠ” 구조를 만들어봅시다. list->next->next = ë�™ì �í• ë‹¹;
#include <stdio.h>
struct node{
int data;
struct node *next;
};
int main()
{
struct node *list=(struct node*)malloc(sizeof(struct node));
list->next=(struct node*)malloc(sizeof(struct node));
list->next->next=(struct node*)malloc(sizeof(struct node));
return 0;
}
8.LinkedList를 ë§Œë“¤ê³ , 리스트 dataì—� 4,5,3,7,12,24,2,9ê°€ 들어가ë�„ë¡� 해봅시다.
1.6.1.2 ì˜ˆìŠµê³¼ì œ
1.Koistudy163
2.163번 ë¬¸ì œë¥¼ í’€ê³ , ê·¸ ë¬¸ì œë¥¼ 어떻게 ì ‘ê·¼í•˜ì˜€ëŠ”ì§€ ë§�해봅시다.
2.163번 ë¬¸ì œë¥¼ í’€ê³ , ê·¸ ë¬¸ì œë¥¼ 어떻게 ì ‘ê·¼í•˜ì˜€ëŠ”ì§€ ë§�해봅시다.
#include <stdio.h>
int main()
{
int key;
char code[100];
int i=0;
scanf("%d",&key);
scanf("%s",code);
while(code[i]!='\0')
{
printf("%c",key+code[i]);
i++;
}
return 0;
}
3.문ìž�ì—´ì�´ 대ì¹ì�¸ê²½ìš° Palindrome, 아닌경우 Not Palindromeì�„ ì¶œë ¥í•˜ëŠ” 프로그램ì�„ 작성해봅시다.
level, racecar, deed는 palindrome, sadfds는 not Palindrome
level, racecar, deed는 palindrome, sadfds는 not Palindrome
#include <stdio.h>
#include <string.h> // strlen() 함수 사용하기 위해
int main()
{
char arr[100];
int i=0;
int len;
scanf("%s",arr);
len=strlen(arr); ///문ìž�ì—´ì�˜ 길ì�´ ì•Œë ¤ 줌
for(i=0;i<len;i++)
{
if(arr[i]!=arr[len-i-1])
{
printf("Not Palindrome\n");
return 0;;
}
}
printf("Palindrome\n");
return 0;
}










