top of page
게시판 게시물
wadepark2020
2025년 1월 12일
In 소스 코드 제출
/*
#include <stdio.h>
int a[1000005]={};
int b[100001]={};
int i,j,n;
int bs(int start,int end,int k)
{
if(a[end]<k)
{
return -1;
}
int mid=(start+end)/2;
if(a[mid]==k)
{
return mid;
}
else if(k<a[mid])
{
return bs(start,mid-1,k);
}
else
{
return bs(mid+1,end,k);
}
}
int main()
{
int n,k;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
scanf("%d",&k);
for(i=1;i<=k;i++)
{
scanf("%d",&b[i]);
}
for(i=1;i<=k;i++)
{
printf("%d ",bs(1,n,b[i]));
}
return 0;
}
*/
/*
#include <stdio.h>
int a[100005]={};
int i,j,n;
int bs(int start,int end,int k)
{
if(a[end]<k)
{
return end+1;
}
int mid=(start+end)/2;
if(a[mid]==k)
{
return mid;
}
else if(k<a[mid])
{
return bs(start,mid-1,k);
}
else
{
return bs(mid+1,end,k);
}
}
int main()
{
int k;
scanf("%d %d",&n,&k);
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
if(a[n-1]<k)
{
printf("%d",n+1);
}
else
{
int s=bs(1,n,k);
while(s>1 && a[s]==a[s-1])
{
s--;
}
printf("%d",s);
}
return 0;
}
*/
/*
y=x+5
y에 0대입
-->0=x+5
x=-5
*/
/*
#include <stdio.h>
int a[1001]={};
int b[2500]={};
int i,j,n;
int bs(start,end,k)
{
if(a[end]<k)
{
return end+1;
}
int mid=(start+end)/2;
if(a[mid]==k)
{
return mid;
}
else if(a[mid]>k)
{
return bs(start,mid-1,k);
}
else
{
return bs(mid+1,end,k);
}
}
int main()
{
int k;
scanf("%d %d",&i,&j);
for(i=1;i<=n;i++)
{
}
}
*/
0
0
1
wadepark2020
2025년 1월 05일
In 소스 코드 제출
/*
#include <stdio.h>
typedef struct
{
int a;
int b;
int c;
}myint;
int main()
{
int i,j,n;
myint temp;
myint arr[1001];
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d %d",&arr[i].b,&arr[i].c);
arr[i].a=i;
}
for(i=1;i<n;i++)
{
for(j=1;j<=n-i;j++)
{
if(arr[j].b<arr[j+1].b)
{
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
else if(arr[j].b==arr[j+1].b)
{
if(arr[j].c>arr[j+1].c)
{
continue;
}
else if(arr[j].c<arr[j+1].c)
{
temp=arr[j+1];
arr[j+1]=arr[j];
arr[j]=temp;
}
}
}
}
for(i=1;i<=n;i++)
{
printf("%d %d %d\n",arr[i].a,arr[i].b,arr[i].c);
}
return 0;
}
*/
/*
#include <stdio.h>
#include <string.h>
typedef struct
{
int b,c,d;
char a[100];
}myint;
int main()
{
int i,j,n;
myint temp;
myint arr[101];
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%s %d %d %d",&arr[i].a,&arr[i].b,&arr[i].c,&arr[i].d);
}
for(i=1;i<=n;i++)
{
for(j=1;j<=n-i;j++)
{
if(arr[j].b>arr[j+1].b)
{
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
else if(arr[j].b==arr[j+1].b)
{
if(arr[j].c==arr[j+1].c)
{
if(arr[j].d<arr[j+1].d)
{
continue;
}
else if(arr[j].d>arr[j+1].d)
{
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
else if(arr[j].d==arr[j+1].d)
{
if(strcmp(arr[j].a,arr[j+1].a)>0)
{
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
else if(arr[j].c<arr[j+1].c)
{
continue;
}
else if(arr[j].c>arr[j+1].c)
{
temp=arr[j+1];
arr[j+1]=arr[j];
arr[j]=temp;
}
}
}
}
for(i=1;i<=n;i++)
{
printf("%s\n",arr[i].a);
}
}
5 1 4 2 3
round1. a[1]에 와야하는 값 선택해서 교환 ( 최소값이 있는 자리를 찾기)
1 // 5 4 2 3
round2. a[2]에 와야 하는 값 선택해서 교환
1 2 // 4 5 3
round3.
1 2 3 // 5 4
round4.
1 2 3 4 // 5 -> end
*/
/*
#include <stdio.h>
int a[10001];
int n, i, j, temp, min;
int main() {
scanf("%d", &n);
for (i = 1; i <= n; i++)
scanf("%d", &a[i]);
for (i=1; i<n; i++) {
min=i;
for (j=i+1; j<=n; j++)
{
if(a[j]<a[min])
{
min=j;
}
}
temp = a[i];
a[i] = a[min];
a[min] = temp;
}
for (i=1; i<=n; i++)
printf("%d\n", a[i]);
return 0;
}
*/
/*
#include <stdio.h>
int a[101];
int i,j,n,temp,max;
int main()
{
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
for(i=1;i<n;i++)
{
max=i;
for(j=i+1;j<=n;j++)
{
if(a[j]>a[max])
{
max=j;
}
}
temp=a[i];
a[i]=a[max];
a[max]=temp;
}
for(i=1;i<=n;i++)
{
printf("%d ",a[i]);
}
return 0;
}
탐색 : 어떤 데이터셋에 내가 찾는 데이터가 있는지? 찾아보는것
방 50개
1. 순차탐색 1번방 2번방 3번방 .... 50번방
2. 이진탐색(이분탐색)-- ( 정렬이 되어있을 때만!!!)
1 ~50 사이의 수 1번 확인 -> 25개 -> 12 -> 6 -> 3 -> 1
start end
1 .......................n
k=3
1 3 5 7 9 10 11 13 15
1 2 3 4 5 6 7 8 9
#include <stdio.h>
int a[101];
int i,j,n,temp,max;
int bs(int start, int end, int k)
// a[start] ~ a[end] 에서 "k값의 위치" 리턴
{
if(a[end]<k) return -1; // 없으면
int mid = (start+end)/2;
if(a[mid]==k) return mid;
else if(k < a[mid]) return bs(start,mid-1,k);
else return bs(mid+1,end,k);
}
int main()
{
int k;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
scanf("%d",&k);
printf("%d",bs(1,n,k));
}
*/
/*
#include <stdio.h>
int a[1000005]={};
int b[100001]={};
int main()
{
int i,j,n;
}
*/
0
0
2
wadepark2020
2024년 12월 29일
In 소스 코드 제출
/*
#include <stdio.h>
int main()
{
int a[50001]= {}, b[50001]= {};
int i,j,n,temp;
scanf("%d",&n);
for(i=1; i<=n; i++)
{
scanf("%d",&a[i]);
b[i] = a[i];
}
for(i=1; i<n; i++)
{
for(j=1; j<n; j++)
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
for(i=1; i<=n; i++)
{
//b[i]가 a의 어디에 있는지?
for(j=1;j<=n;j++)
{
if(b[i]==a[j])
{
printf("%d ",j-1);
break;
}
}
}
return 0;
}
*/
/*
#include <stdio.h>
int main()
{
int a[101]={};
int i,j,n,temp;
for(i=1;i<=7;i++)
{
scanf("%d",&a[i]);
}
for(i=1;i<=7;i++)
{
for(j=1;j<=7;j++)
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
printf("%d\n%d",a[j],a[j-1]);
return 0;
}
*/
/*
#include <stdio.h>
typedef struct
{
int a;
int b;
}myint;
int main()
{
myint arr[101];
myint temp;
int i,j,n;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d %d",&arr[i].a,&arr[i].b);
}
for(i=1;i<n;i++)
{
for(j=1;j<=n-i;j++)
{
if(arr[j].a>arr[j+1].a)
{
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
for(i=1;i<=n;i++)
{
printf("%d %d\n",arr[i].a,arr[i].b);
}
return 0;
}
*/
#include <stdio.h>
typedef struct
{
int a;
int b;
int c;
}myint;
int main()
{
int i,j,n;
myint temp;
myint arr[1001];
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d %d %d",&arr[i].a,&arr[i].b,&arr[i].c);
}
for(i=1;i<n;i++)
{
for(j=1;j<=n-i;j++)
{
if(arr[j].b>arr[j+1].b)
{
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
else if(arr[j].b==arr[j+1].b)
{
if(arr[j].c>arr[j+1].c)
{
/////
}
}
}
}
for(i=1;i<=n;i++)
{
printf("%d %d %d",&arr[i].a,&arr[i].b,&arr[i].c);
}
return 0;
}
0
0
2
wadepark2020
2024년 12월 28일
In 소스 코드 제출
#include <stdio.h>
int main()
{
int a[50001]={}, b[50001]={};
int i,j,n,temp;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]);
b[i] = a[i];
}
for(i=1;i<n;i++)
{
for(j=1;j<n;j++)
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
for(i=0;i<=n;i++)
{
if(a[i])
{
printf("%d ",);
}
}
return 0;
}
0
0
4
wadepark2020
2024년 12월 22일
In 소스 코드 제출
/*
#include <stdio.h>
int main()
{
int a[50001]={}, b[50001]={};
int i,j,n,temp;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]);
b[i] = a[i];
}
for(i=1;i<n;i++)
{
for(j=1;j<n;j++)
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
for(i=0;i<=n;i++)
{
if(a[i])
{
printf("%d ",);
}
}
return 0;
}
*/
0
0
1
wadepark2020
2024년 12월 21일
In 소스 코드 제출
/*
#include <stdio.h>
int main()
{
int arr[100001]={};
int i,j,n,temp;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&temp);
arr[temp]++;
}
for(i=0;i<=100000;i++)
{
for(j=0;j<arr[i];j++)
{
printf("%d ",i);
}
}
return 0;
}
*/
0
0
2
wadepark2020
2024년 12월 08일
In 소스 코드 제출
/*
#include <stdio.h>
int main()
{
int a[1001]={};
int i, j, n, temp, x=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
for(i=1;i<=n;i++)
{
x=0;
for(j=1;j<=n-i;j++)
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
x++;
}
}
if(x==0)
{
x=i-1;
break;
}
}
printf("%d",x);
return 0;
}
*/
/*
#include <stdio.h>
int main()
{
int a[4500005]={};
int i,j,n
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
for(i=1;i<=n;i++)
{
for(j=1;i<=n;j++)
{
}
}
for(i=1;i<=n;i++)
{
printf("%d",a[i]);
}
return 0;
}
*/
/*
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
------------------->를 정렬을 안쓰고 바꾸기
*/
0
0
3
wadepark2020
2024년 12월 07일
In 소스 코드 제출
#include <stdio.h>
int main()
{
int a[1001]={};
int i,j,n,temp,sum=0,x=1;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
for(i=1;i<=n;i++)
{
for(j=1;j<=n-i;j++)
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
sum++;
}
}
if(sum==0)
{
x=i;
break;
}
}
printf("%d",x);
return 0;
}
0
0
3
wadepark2020
2024년 12월 01일
In 소스 코드 제출
/*
#include <stdio.h>
#include <string.h>
int front=-1;
int queue[205]={};
int back=-1;
void push(char x)
{
back++;
queue[back]=x;
}
void pop()
{
if(front<back)
{
front++;
}
}
void view()
{
printf("queue");
for(int i=0;i<=back;i++)
{
printf("%d ",queue[i]);
}
printf("back=%d\n",back);
}
int main()
{
int i,n,num;
char str[205]={};
scanf("%d",&n);
getchar();
for(i=0;i<n;i++)
{
scanf("%s",str);
if(str[1]=='u')
{
scanf("%d )",&num);
push(num);
}
else if(str[0]=='b')
{
if(back==front)
{
printf("-1");
printf("\n");
}
else
{
printf("%d\n",queue[back]);
}
}
else if(str[0]=='f')
{
if(back==front)
{
printf("-1");
printf("\n");
}
else
{
printf("%d\n",queue[front+1]);
}
}
else if(str[0]=='p')
{
pop();
}
else if(str[0]=='s')
{
printf("%d\n",back-front);//back은 게속 증가
}
else if(str[0]=='e')
{
if(back==front)
{
printf("true\n");
}
else
{
printf("false\n");
}
}
}
return 0;
}
정렬 (sort) : 정리해서 나열 ( 오름차순 , 내림차순 )
1. 코드 easy but 정렬속도 slow --- > (버블, 선택, 삽입)
2. 코드 hard but 정렬속도 fast --- > (퀵, 병합)
1. 버스 ( 만드는데 휩지만, 속도는 느려)
2. 비행기 (만드는데 어렵지만, 속도는 빨라)
( 항상 어느 정렬이 무조건 빠르다! 라고 할 수 없음 )
이름 특징
버블 항상 느려 , 코드가 엄청 간단
선택 중간 느려 , 코드가 "사람생각"
삽입 정렬이 어느정도 되어있는 경우 빠르다, 코드가 조금 복잡
퀵 데이터가 많을때 엄청 빨라, 코드가 복잡
1. 버블정렬 ( 제일 노답 성능 , 제일 간단 )
(옆에 있는 애랑 비교해서 바꿔 ) 를 걔속 반복
5 1 3 4 2 n=5
round1. (4번비교)
1 5 3 4 2
1 3 5 4 2
1 3 4 5 2
1 3 4 2 : 5
round2. (3번비교)
1 3 4 2 5
1 3 4 2 5
1 3 2 : 4 5
round3. ( 2번비교)
1 3 2 4 5
1 2 : 3 4 5
round4. ( 1번비교)
1 : 2 3 4 5
*/
/*
#include <stdio.h>
int a[10001];
int n, i, j, temp;
int main() {
scanf("%d", &n);
for (i=1; i<=n; i++)
scanf("%d", &a[i]);
for(i=1; i<n; i++)
{
for(j=1;j<=n-i;j++)
{
if (a[j] > a[j+1])
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
for (i = 1; i <= n; i++)
printf("%d\n", a[i]);
return 0;
}
*/
/*
#include <stdio.h>
int main()
{
int i,j,n,temp;
int a[101]={};
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
for(i=1;i<n;i++)
{
for(j=1;j<=n-i;j++)
{
if(a[j]<a[j+1])
{
temp=a[j+1];
a[j+1]=a[j];
a[j]=temp;
}
}
}
for(i=1;i<=n;i++)
{
printf("%d ",a[i]);
}
return 0;
}
*/
/*
#include <stdio.h>
int main()
{
int a[1001]={};
int i,j,n,temp;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
for(i=1;i<=n;i++)
{
for(j=1;j<=n-i;j++)
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
}
*/
////////숙제:3011번 거품 정렬 풀어오기(좀 해와라)
0
0
3
wadepark2020
2024년 11월 30일
In 소스 코드 제출
/*
#include <stdio.h>
#include <string.h>
int top=0; //현재 놓인 막대 갯수
int sum=0; //현재 잘려진 조각 갯수
int main()
{
char a[100001]={};
int i;
scanf("%s",&a);
for(i=0;a[i]!=NULL;i++)
{
if(a[i]=='(')
{
if(a[i+1]=='(') //막대시작
{
top++;
}
else //레이저
{
sum+=top;
i++;
}
}
else if(a[i]==')') //막대끝
{
top--;
sum++;
}
}
printf("%d",sum);
return 0;
}
*/
/*
#include <stdio.h>
#include <string.h>
int front=0;
int queue[205]={};
int back=-1;
void push(char x)
{
back++;
queue[back]=x;
}
void pop()
{
if(front>back)
{
front++;
}
}
void view()
{
printf("queue");
for(int i=0;i<=back;i++)
{
printf("%d ",queue[i]);
}
printf("back=%d\n",back);
}
int main()
{
int i,n,cnt=0,num;
char str[205]={};
scanf("%d",&n);
getchar();
for(i=0;i<n;i++)
{
scanf("%s",str);
if(str[1]=='u')
{
scanf("%d )",&num);
push(num);
}
else if(str[0]=='t')
{
if(front==back)
{
printf("\n");
}
else
{
printf("%d\n",queue[back]);
}
}
}
if(str[0]=='p')
{
pop();
}
else if(str[0]=='s')
{
printf("%d\n",back+1);
}
else if(str[0]=='e')
{
if(front==back)
{
printf("true\n");
}
else
{
printf("false\n");
}
printf("\n");
}
return 0;
}
*/
0
0
1
wadepark2020
2024년 11월 30일
In 소스 코드 제출
#include <stdio.h>
#include <string,h>
char stack[100001]={};
int top=-1;
void push(char x)
{
top++;
stack[top]=x;
}
void pop()
{
top--;
}
int main()
{
char a[100001];
int i,sum=0,cnt=0;
scanf("%s",&a);
}
0
0
2
wadepark2020
2024년 11월 24일
In 소스 코드 제출
/*
#include <stdio.h>
#include <string.h>
int stack[205]={};
int top=-1; // top : 마지막 데이터의 "위치"
void push (char x)
{
top++;
stack[top]=x;
}
void pop()
{
if(top>-1)
{
top--;
}
}
void view()
{
printf(">>>>stack [");
for(int i=0;i<=top;i++)
{
printf("%d ",stack[i]);
}
printf("] top = %d \n",top);
}
int main()
{
int i,n,cnt=0, num;
char str[205]={};
scanf("%d",&n);
getchar();
for(i=0;i<n;i++)
{
scanf("%s",str);
// push? top? pop? size? empty?
if(str[1]=='u')
{
scanf("%d )",&num);
push(num);
}
else if(str[0]=='t')
{
if(top==-1)
{
printf("-1\n");
}
else
{
printf("%d\n",stack[top]);
}
}
else if(str[0]=='p')
{
pop();
}
else if(str[0]=='s')
{
printf("%d\n",top+1);
}
else if(str[0]=='e')
{
if(top==-1)
{
printf("true\n");
}
else
{
printf("false\n");
}
}
//view(); printf("\n");
}
return 0;
}
*/
/////////////////////////다시 해보기
#include <stdio.h>
#include <string.h>
int stacl[205{};
int top=-1;
void push(char x)
{
top++;
stack[top]=x;
}
void pop()
{
if(top>-1)
{
top--;
}
}
int main()
{
int i,n,cnt=0,num;
char str[205]={};
scanf("%d",&n);
for(i=0;i<=n-1;i++)
{
}
return 0;
}
0
0
4
wadepark2020
2024년 11월 10일
In 소스 코드 제출
/*
#include <stdio.h>
#include <string.h>
int main()
{
int i,x=0,y=0;
char str[100001]={};
scanf("%d %d",&x,&y);
gets(str);
for(i=0;str[i]!=NULL;i++)
{
if(str[i]=='(')
{
x=x+1;
}
else if(str[i]==')')
{
y=y+1;
}
}
printf("%d %d",x,y);
return 0;
}
*/
/*
#include <string.h>
#include <string.h>
char stack[50005]={};
int top=-1;
void push(char x)
{
top++;
stack[top]=x;
}
void pop()
{
top--;
}
int main()
{
int i;
char str[50005]={};
gets(str);
for(i=0;str[i]!=NULL;i++)
{
push(str[i]);
if(stack[top]==')' && top!=0)
{
if(stack[top-1]=='(')
{
pop();
pop();
}
else
{
printf("bad");
return 0;
}
}
}
if(top==-1)
{
printf("good");
}
else
{
printf("bad");
}
return 0;
}
// ')' 갯수 , '(' 갯수 세기
// if()//')'갯수 > '('갯수
// {
// printf("bad");
// return 0;
// }
*/
/*lude <stdio.h>
#include <string.h>
int stack[205]={};
int top=-1;
void push(int x)
{
top++;
stack[top]=x;
}
void pop()
{
top--;
}
int main()
{
int i,n,cnt=0;
char str[205]={};
scanf("%d",&n);
getchar();
for(i=0;i<n;i++)
{
gets(str);
// push? top? pop? size? empty?
if(str[1]=='u')
{
push(str[6]-48);
}
else if(str[0]=='t')
{
if(top==-1)
{
printf("-1\n");
}
else
{
printf("%d\n",stack[top]);
}
}
else if(str[0]=='p')
{
pop();
}
else if(str[0]=='s')
{
printf("%d\n",top+1);
}
else if(str[0]=='e')
{
if(top==-1)
{
printf("true\n");
}
else
{
printf("false\n");
}
}
}
return 0;//////////////숙제:틀린거 고쳐오기(오ㅓ답)
}
*/
0
0
4
wadepark2020
2024년 11월 03일
In 소스 코드 제출
/*
#include <stdio.h>
int stack[1005]={};
int top=-1;
void push(int b)
{
top++;
stack[top]=b;
}
void pop()
{
printf("%d ",stack [top]);
top--;
}
int main()
{
int i,a,n;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&a);
push(a);
}
while(top!=-1)
{
pop(a);
}
return 0;
}*/
/*
#include <stdio.h>//////다시 한번 풀어보기
#include <string.h>
char stack[20]={};
int top=-1;
void push(char b)
{
top++;
stack[top]=b;
}
void pop()
{
printf("%c",stack[top]);
top--;
}
int main()
{
int i=0;
char a[20]={};
gets(a);
while(i<strlen(a))
{
push(a[i]);
i++;
}
while(top!=-1)
{
pop();
}
return 0;
}
*/
/*
#include <stdio.h>
#include <string.h>
char stack[20]={};
int top=-1;
void push(char x)
{
top++;
stack[top]=x;
}
void pop()
{
printf("%c",stack[top]);
top--;
}
int main()
{
int i=0;
char str[20]={};
gets(str);
for(i=0;str[i]!=NULL;i++)
{
//printf("%c",str[i]);
push(str[i]);
}
while(top!=-1)
{
pop();
}
}
8
12345678
12,345,678
*/
/*
#include <stdio.h>
#include <string.h>
char stack[305]={};
int top=-1;
void push(char x)
{
top++;
stack[top]=x;
}
void pop()
{
printf("%c",stack[top]);
top--;
}
int main()
{
int i,n;
char str[205]={};
scanf("%d\n",&n);
gets(str);
for(i=1;i<=n;i++)
{
if(i%3==1 && i!=1)
{
push(',');
}
push(str[n-i]);
}
while(top!=-1)
{
sum+=pop();
}
return 0;
}
*/
/*
#include <stdio.h>
#include <string.h>
char stack[20]={};
int top=-1;
void push(char x)
{
top++;
stack[top]=x;
}
void pop()
{
printf("%c",stack[top]);
top--;
}
int main()
{
int i=0;
char a[20]={};
gets(a);
while(i<strlen(a))
{
push(a[i]);
i++;
}
while(top!=-1)
{
pop();
}
return 0;
}*/
/*
#include<stdio.h>
int stack[100005]={};
int top=-1;
void push(int x)
{
top++;
stack[top]=x;
}
void pop()
{
top--;
}
int pop1()
{
pop();
return stack[top+1];
}*/
/*
int main()
{
int i,k,n,sum=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&k);
if(k!=0)
{
push(k);
}
else if(k==0)
{
pop();
}
}
while(top!=-1)
{
sum+=pop1();
}
printf("%d",sum);
return 0;
}
*/
0
0
2
wadepark2020
2024년 10월 27일
In 소스 코드 제출
/*
#include <stdio.h> // 입출력문 printf, scanf 사용하기 위한 헤더
#include <windows.h> // move 사용하기위한 헤더
#include <conio.h> //_getch가 포함되어있는 헤더
#include <stdlib.h>
#include <time.h>
int pi=5, pj=5; // player의 위치
int ti,tj; // item $의 위치
int ai,aj; // 'a'ddress(item @의 위치)
int mi,mj; //마이너스의 m임!(item ?의 위치)
int ci,cj; //item &의 위치 // item &를 먹을경우, 조이스틱이 반대로 된다.
int ri,rj; //item #의 위치 // item #을 먹을 경우, 모든 아이템의 위치가 랜덤으로 바뀐다.
int si,sj; //item -의 위치// item -을 먹을 경우, 두칸씩 이동한다.
int hi,hj; //item !의 위치// item !을 먹을 경우, 1라운드로 돌아간다.
int speed=1;
int cnt=0;
int round=1;
void move(int i, int j)
{
COORD Pos;
Pos.X = j;
Pos.Y = i;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), Pos);
}
void map()
{
int i,j,cnt=0;
move(3,3);
for(i=3;i<=40;i++)
{
move(i,3);
for(j=3;j<=40;j++)
{
if(i==3 || j==3|| i==40 || j==40)
{
printf("*");
}
else
{
printf(" ");
}
}
}
}
void restart()
{
round=1;
cnt=0;
}
void init(){
system("cls");
//배경 출력
map();
//플레이어 출력
move(pi,pj);
printf("*");
// 아이템 랜덤 위치 정하고 출력
ti = rand()%36+4; // 4 ~ 39 사이의 랜덤수 생성
tj = rand()%36+4; // 4 ~ 39 사이의 랜덤수 생성
move(ti,tj);
printf("$");
ai=rand()%36+4;
aj=rand()%36+4;
move(ai,aj);
printf("@");
mi=rand()%36+4;
mj=rand()%36+4;
move(mi,mj);
printf("?");
ci=rand()%36+4;
cj=rand()%36+4;
move(ci,cj);
printf("&");//방향키가 반대로 되는 아이템이라서 다시 랜덤으로 위치 안나옴
// 현재 상태 나타내기
move(5,50);
printf("이걸 못해? 수준 ㅉ");
move(7,50);
printf("꼬우면 잘하던가 ㅋ 10점 찍으면 인정한다 ㅋ");
move(10,50);
printf(" coordinate(*의 좌표) : %2d %2d",pi,pj);
move(15,50);
printf(" score(점수) : %d",cnt);
move(25,50);
printf(" $(+1점) : %d %d",ti,tj); //아이템 $의 좌표 옆에 출력하기
move(30,50);
printf(" @(+2점) : %2d %2d",ai,aj); // 아이템 @의 좌표 옆에 출력하기
move(35,50);
printf(" ?(-3점) : %2d %2d",mi,mj); //아이템 ?의 좌표 옆에 출력하기
move(20,50);
printf(" &(방향키 반대로 ㅋ) : %d %d",ci,cj); //item&의 좌표 옆에 출력하기!!
if(round==2)
{
hi=rand()%36+4;
hj=rand()%36+4;
move(hi,hj);
printf("!");
si=rand()%36+4;
sj=rand()%36+4;
move(si,sj);
printf("-");
ri=rand()%36+4;
rj=rand()%36+4;
move(ri,rj);
printf("#");
move(35,50);
printf(" #(아이템들의 위치가 랜덤으로 초기화) :%d %d",ri,rj); //item#의 좌표 옆에 출력하기!!
move(45,50);
printf(" -(아이템을 먹엇을 때 두칸씩 이동) :%d %d",si,sj); //item-의 좌표 옆에 출력하기!!
move(47,50);
printf(" !(아이템을 먹엇을때 1라운드로 초기화): %d %d",hi,hj);
}
}
//i't'em=ti,tj
int main()
{
system("mode con:cols=110 lines=100");
int mode = 0; // 0 wasd위왼아오 , 1 sdwa위왼아오
int cnt=0; //점수
int ss=0;
srand(time(NULL));
// 플레이어 점수
init();
// 플레이어 이동 시작
for(;;)
{
// 키보드 입력받기
char x = _getch();
move(pi,pj);
printf(" ");
// 입력받은 문자에 따라 플레이어 위치 이동하기
if (mode==0) //좌우반전모드
{
if(x=='w')
{
if(pi-1*speed>3) pi=pi-1*speed;
}
else if(x=='a')
{
if(pj-1*speed>3)pj=pj-1*speed;
}
else if(x=='s')
{
if(pi+1*speed<40)pi=pi+1*speed;
}
else if(x=='d')
{
if(pj+1*speed<40)pj=pj+1*speed;
}
}
else
{
if(x=='s')
{
if(pi>=5) pi--;
}
else if(x=='d')
{
if(pj>=5)pj--;
}
else if(x=='w')
{
if(pi<=38)pi++;
}
else if(x=='a')
{
if(pj<=38)pj++;
}
}
// 이동된 위치에서 플레이어 출력하기
move(pi,pj);
printf("*");
if(pi==ti && pj==tj) // * item 먹었으면
{
cnt=cnt+1;
// 새로운 곳에 아이템을 생성
ti = rand()%36+4; // 4 ~ 39 사이의 랜덤수 생성
tj = rand()%36+4; // 4 ~ 39 사이의 랜덤수 생성
move(ti,tj);
printf("$");
}
else if(pi==ai && pj==aj)
{
cnt=cnt+2; //아이템을 먹었을때 2점을 획득
ai=rand()%36+4;
aj=rand()%36+4;
move(ai,aj);
printf("@");
}
else if(pi==mi && pj==mj)
{
cnt=cnt-3; //아이템을 먹었을때 3점 감점
if(cnt<3)
{
cnt=0;
}
mi=rand()%36+4;
mj=rand()%36+4;
move(mi,mj);
printf("?");
}
else if(pi==ci && pj==cj) // reverse 아이템
{
mode = 1;
}
else if(pi==ri && pj==rj) // 아이템 위치 바뀌는 아이템
{
move(ti,tj);
printf(" ");
ti = rand()%36+4; // 4 ~ 39 사이의 랜덤수 생성
tj = rand()%36+4; // 4 ~ 39 사이의 랜덤수 생성
move(ti,tj);
printf("$");
move(ai,aj);
printf(" ");
ai=rand()%36+4;
aj=rand()%36+4;
move(ai,aj);
printf("@");
move(mi,mj);
printf(" ");
mi=rand()%36+4;
mj=rand()%36+4;
move(mi,mj);
printf("?");
move(ci,cj);
printf(" ");
ci=rand()%36+4;
cj=rand()%36+4;
move(ci,cj);
printf("&");
ri=rand()%36+4;
rj=rand()%36+4;
move(ri,rj);
printf("#");
if(ss==0)
{
move(si,sj);
printf(" ");
si=rand()%36+4;
sj=rand()%36+4;
move(si,sj);
printf("-");
}
}
else if(pi==si && pj==sj)
{
speed=2;
ss=1;
}
else if(pi==hi && pj==hj)//1라운드로 초기화 !
{
restart();
init();
}
move(10,50);
printf(" coordinate(*의 좌표) : %2d %2d",pi,pj);
move(15,50);
printf(" score(점수) : %d",cnt);
move(25,50);
printf(" $(+1점) : %d %d",ti,tj); //아이템 $의 좌표 옆에 출력하기
move(30,50);
printf(" @(+2점) : %2d %2d",ai,aj); // 아이템 @의 좌표 옆에 출력하기
move(35,50);
printf(" ?(-3점) : %2d %2d",mi,mj); //아이템 ?의 좌표 옆에 출력하기
move(20,50);
printf(" &(방향키 반대로 ㅋ) : %d %d",ci,cj); //item&의 좌표 옆에 출력하기!!
if(round==2)
{
move(40,50);
printf(" &(방향키 반대로 ㅋ) : %d %d",ci,cj); //item&의 좌표 옆에 출력하기!!
move(35,50);
printf(" #(아이템들의 위치가 랜덤으로 초기화) :%d %d",ri,rj); //item#의 좌표 옆에 출력하기!!
move(45,50);
printf(" -(아이템을 먹엇을 때 두칸씩 이동) :%d %d",si,sj); //item-의 좌표 옆에 출력하기!!
move(47,50);
printf(" !(아이템을 먹엇을때 1라운드로 초기화): %d %d",hi,hj);
}
if(round==1 && cnt>=2)
{
round++;
system("cls");
move(20,20);
printf("1라운드 통과하셨습니다!!");/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
move(21,20);
printf("스페이스 키를 누르시면 2라운드로 넘어갑니다");
char y=_getch();
if(y==' ') {
system("cls");
init();
continue;
}
}
}
}
자료구조 ->
자료 -> int a =10; a-> 자료
/*
#include <stdio.h>
int stack[1005]={};
int top=-1; // top : 마지막 데이터의 "위치" /// top==-1 -> stack이 비어있다
void push(int x)
{
top++;
stack[ top ] = x;
}
void pop()
{
printf("%d ",stack[top]);
top--;
}
int main()
{
int i, a, n;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&a);
push(a); //a를 스택에 push
}
// stack에서 pop
//스택에 있는 값 모두 (보기)
// for(i=0;i<=top;i++)
// {
// printf("stack[%d] : %d\n",i,stack[i]);
// }
//스택에 있는 값 모두 (빼기 pop) + (보기)
while(top != -1)
{
printf("%d ",stack[top]);
top--;
}
return 0;
}
*/
#include <stdio.h>
int stack[1005]={};
int top=-1;
void push(int b)
{
top++;
stack[top]=b;
}
void pop()
{
printf("%d ",stack [top]);
top--;
}
int main()
{
int i,a,n;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&a);
push(a);
}
while(top!=-1)
{
pop(a);
}
return 0;
}
*/
0
0
2
wadepark2020
2024년 10월 20일
In 소스 코드 제출
#include <stdio.h> // 입출력문 printf, scanf 사용하기 위한 헤더
#include <windows.h> // move 사용하기위한 헤더
#include <conio.h> //_getch가 포함되어있는 헤더
#include <stdlib.h>
#include <time.h>
void move(int i, int j)
{
COORD Pos;
Pos.X = j;
Pos.Y = i;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), Pos);
}
void map()
{
int i,j,cnt=0;
move(3,3);
for(i=3;i<=40;i++)
{
move(i,3);
for(j=3;j<=40;j++)
{
if(i==3 || j==3|| i==40 || j==40)
{
printf("*");
}
else
{
printf(" ");
}
}
}
}
//i't'em=ti,tj
int main()
{
system("mode con:cols=110 lines=100");
int mode = 0; // 0 wasd위왼아오 , 1 sdwa위왼아오
int pi=5, pj=5; // player의 위치
int ti,tj; // item $의 위치
int ai,aj; // 'a'ddress(item @의 위치)
int mi,mj; //마이너스의 m임!(item ?의 위치)
int ci,cj; //item &의 위치 // item &를 먹을경우, 조이스틱이 반대로 된다.
int ri,rj; //item #의 위치 // item #을 먹을 경우, 모든 아이템의 위치가 랜덤으로 바뀐다.
int si,sj; //item -의 위치// item -을 먹을 경우, 두칸씩 이동한다.
int hi,hj; //item !의 위치// item !을 먹을 경우, 1라운드로 돌아간다.
int speed=1;
srand(time(NULL));
// 플레이어 점수
int cnt=0;
//배경 출력
map();
//플레이어 출력
move(pi,pj);
printf("*");
// 아이템 랜덤 위치 정하고 출력
ti = rand()%36+4; // 4 ~ 39 사이의 랜덤수 생성
tj = rand()%36+4; // 4 ~ 39 사이의 랜덤수 생성
move(ti,tj);
printf("$");
ai=rand()%36+4;
aj=rand()%36+4;
move(ai,aj);
printf("@");
mi=rand()%36+4;
mj=rand()%36+4;
move(mi,mj);
printf("?");
ci=rand()%36+4;
cj=rand()%36+4;
move(ci,cj);
printf("&");
// 현재 상태 나타내기
move(5,50);
printf("이걸 못해? 수준 ㅉ");
move(7,50);
printf("꼬우면 잘하던가 ㅋ 10점 찍으면 인정한다 ㅋ");
move(10,50);
printf(" coordinate(*의 좌표) : %2d %2d",pi,pj);
move(20,50);
printf(" score(점수) : %d",cnt);
move(30,50);
printf(" $(+1점) : %d %d",ti,tj); //아이템 $의 좌표 옆에 출력하기
move(40,50);
printf(" @(+2점) : %2d %2d",ai,aj); // 아이템 @의 좌표 옆에 출력하기
move(45,50);
printf(" ?(-3점) : %2d %2d",mi,mj); //아이템 ?의 좌표 옆에 출력하기
move(25,50);
printf(" &(방향키 반대로 ㅋ) : %d %d",ci,cj); //item&의 좌표 옆에 출력하기!!
// 플레이어 이동 시작
for(;;)
{
// 키보드 입력받기
char x = _getch();
move(pi,pj);
printf(" ");
// 입력받은 문자에 따라 플레이어 위치 이동하기
if (mode==0)
{
if(x=='w')
{
if(pi>=5) pi--;
}
else if(x=='a')
{
if(pj>=5)pj--;
}
else if(x=='s')
{
if(pi<=38)pi++;
}
else if(x=='d')
{
if(pj<=38)pj++;
}
}
else
{
if(x=='s')
{
if(pi>=5) pi--;
}
else if(x=='d')
{
if(pj>=5)pj--;
}
else if(x=='w')
{
if(pi<=38)pi++;
}
else if(x=='a')
{
if(pj<=38)pj++;
}
}
// 이동된 위치에서 플레이어 출력하기
move(pi,pj);
printf("*");
if(pi==ti && pj==tj) // item 먹었으면
{
cnt=cnt+1;
// 새로운 곳에 아이템을 생성
ti = rand()%36+4; // 4 ~ 39 사이의 랜덤수 생성
tj = rand()%36+4; // 4 ~ 39 사이의 랜덤수 생성
move(ti,tj);
printf("$");
}
else if(pi==ai && pj==aj)
{
cnt=cnt+2; //아이템을 먹었을때 2점을 획득
ai=rand()%36+4;
aj=rand()%36+4;
move(ai,aj);
printf("@");
}
else if(pi==mi && pj==mj)
{
cnt=cnt-3; //아이템을 먹었을때 3점 감점
if(cnt<3)
{
cnt=0;
}
mi=rand()%36+4;
mj=rand()%36+4;
move(mi,mj);
printf("?");
}
else if(pi==ci && pj==cj)
{
mode = 1;
}
move(10,50);
printf(" coordinate(*의 좌표) : %2d %2d",pi,pj);
move(20,50);
printf(" score(점수) : %d",cnt);
move(30,50);
printf(" $(+1점) : %d %d",ti,tj); //아이템 $의 좌표 옆에 출력하기
move(40,50);
printf(" @(+2점) : %2d %2d",ai,aj); // 아이템 @의 좌표 옆에 출력하기
move(45,50);
printf(" ?(-3점) : %2d %2d",mi,mj); //아이템 ?의 좌표 옆에 출력하기
move(25,50);
printf(" &(방향키 반대로 ㅋ) : %d %d",ci,cj); //item&의 좌표 옆에 출력하기!!
if(cnt>=2)
{
break;
}
}
system("cls");
move(20,20);
printf("1라운드 통과하셨습니다!!");
move(21,20);
printf("스페이스 키를 누르시면 2라운드로 넘어갑니다");
char y=_getch();
if(y==' ')
{
int ss=0;
system("cls");
mode = 0; // 0 wasd위왼아오 , 1 sdwa위왼아오
pi=5, pj=5; // player의 위치
srand(time(NULL));
// 플레이어 점수
cnt=0;
//배경 출력
map();
//플레이어 출력
move(pi,pj);
printf("*");
// 아이템 랜덤 위치 정하고 출력
ti = rand()%36+4; // 4 ~ 39 사이의 랜덤수 생성
tj = rand()%36+4; // 4 ~ 39 사이의 랜덤수 생성
move(ti,tj);
printf("$");
ai=rand()%36+4;
aj=rand()%36+4;
move(ai,aj);
printf("@");
mi=rand()%36+4;
mj=rand()%36+4;
move(mi,mj);
printf("?");
ci=rand()%36+4;
cj=rand()%36+4;
move(ci,cj);
printf("&");
ri=rand()%36+4;
rj=rand()%36+4;
move(ri,rj);
printf("#");
si=rand()%36+4;
sj=rand()%36+4;
move(si,sj);
printf("-");
hi=rand()%36+4;
hj=rand()%36+4;
move(hi,hj);
printf("!");
// 현재 상태 나타내기
move(5,50);
printf("이걸 못해? 수준 ㅉ");
move(7,50);
printf("꼬우면 잘하던가 ㅋ 10점 찍으면 인정한다 ㅋ");
move(10,50);
printf(" coordinate(*의 좌표) : %2d %2d",pi,pj);
move(20,50);
printf(" score(점수) : %d",cnt);
move(30,50);
printf(" $(+1점) : %d %d",ti,tj); //아이템 $의 좌표 옆에 출력하기
move(40,50);
printf(" @(+2점) : %2d %2d",ai,aj); // 아이템 @의 좌표 옆에 출력하기
move(45,50);
printf(" ?(-3점) : %2d %2d",mi,mj); //아이템 ?의 좌표 옆에 출력하기
move(25,50);
printf(" &(방향키 반대로 ㅋ) : %d %d",ci,cj); //item&의 좌표 옆에 출력하기!!
move(47,50);
printf(" #(아이템들의 위치가 랜덤으로 초기화) :%d %d",ri,rj); //item#의 좌표 옆에 출력하기!!
move(49,50);
printf("-(아이템을 먹엇을 때 두칸씩 이동) :%d %d",si,sj); //item의 좌표 옆에 출력하기!!
move(46,50);
printf("!(아이템을 먹엇을때 1라운드로 초기화) : %d %d",hi,hj);//item의 좌표 옆에 출력하기!!
for(;;)
{
// 키보드 입력받기
char x = _getch();
move(pi,pj);
printf(" ");
// 입력받은 문자에 따라 플레이어 위치 이동하기
if (mode==0)
{
if(x=='w')
{
if(pi-1*speed>3) pi=pi-1*speed;
}
else if(x=='a')
{
if(pj-1*speed>3)pj=pj-1*speed;
}
else if(x=='s')
{
if(pi+1*speed<40)pi=pi+1*speed;
}
else if(x=='d')
{
if(pj+1*speed<40)pj=pj+1*speed;
}
}
// 이동된 위치에서 플레이어 출력하기
move(pi,pj);
printf("*");
if(pi==ti && pj==tj) // item 먹었으면
{
cnt=cnt+1;
// 새로운 곳에 아이템을 생성
ti = rand()%36+4; // 4 ~ 39 사이의 랜덤수 생성
tj = rand()%36+4; // 4 ~ 39 사이의 랜덤수 생성
move(ti,tj);
printf("$");
}
else if(pi==ai && pj==aj)
{
cnt=cnt+2; //아이템을 먹었을때 2점을 획득
ai=rand()%36+4;
aj=rand()%36+4;
move(ai,aj);
printf("@");
}
else if(pi==mi && pj==mj)
{
cnt=cnt-3; //아이템을 먹었을때 3점 감점
if(cnt<3)
{
cnt=0;
}
mi=rand()%36+4;
mj=rand()%36+4;
move(mi,mj);
printf("?");
}
else if(pi==ci && pj==cj)
{
mode = 1;
}
else if(pi==ri && pj==rj)
{
move(ti,tj);
printf(" ");
ti = rand()%36+4; // 4 ~ 39 사이의 랜덤수 생성
tj = rand()%36+4; // 4 ~ 39 사이의 랜덤수 생성
move(ti,tj);
printf("$");
move(ai,aj);
printf(" ");
ai=rand()%36+4;
aj=rand()%36+4;
move(ai,aj);
printf("@");
move(mi,mj);
printf(" ");
mi=rand()%36+4;
mj=rand()%36+4;
move(mi,mj);
printf("?");
move(ci,cj);
printf(" ");
ci=rand()%36+4;
cj=rand()%36+4;
move(ci,cj);
printf("&");
ri=rand()%36+4;
rj=rand()%36+4;
move(ri,rj);
printf("#");
move(si,sj);
if(ss==0)
{
printf(" ");
si=rand()%36+4;
sj=rand()%36+4;
move(si,sj);
printf("-");
}
}
else if(pi==si && pj==sj)
{
speed=2;
ss=1;
}
else if(pi==hi && pj==hj)
{
//1라운드로 초기화////////////////////////////////////////////////////////////////////////////////////////////////
}
move(10,50);
printf(" coordinate(*의 좌표) : %2d %2d",pi,pj);
move(20,50);
printf(" score(점수) : %d",cnt);
move(30,50);
printf(" $(+1점) : %d %d",ti,tj); //아이템 $의 좌표 옆에 출력하기
move(40,50);
printf(" @(+2점) : %2d %2d",ai,aj); // 아이템 @의 좌표 옆에 출력하기
move(45,50);
printf(" ?(-3점) : %2d %2d",mi,mj); //아이템 ?의 좌표 옆에 출력하기
move(25,50);
printf(" &(방향키 반대로 ㅋ) : %d %d",ci,cj); //item&의 좌표 옆에 출력하기!!
move(47,50);
printf(" #(아이템들의 위치가 랜덤으로 초기화) :%d %d",ri,rj); //item#의 좌표 옆에 출력하기!!
move(49,50);
printf(" -(아이템을 먹엇을 때 두칸씩 이동) :%d %d",si,sj); //item-의 좌표 옆에 출력하기!!
move(46,50);
printf(" !(아이템을 먹엇을 때 1라운드로 초기화):%d %d",hi,hj); //item!의 좌표 옆에 출력하기!!
if(cnt>=20)
{
break;
}
}
}
}
/*
#include <stdio.h>
int main()
{
srand(time(NULL));0
for(int i=0;i<10;i++)
{
//int x = rand(); // 0 ~ 324742 사이의 랜덤수
int x = rand()%10+1;
printf("%d ",x);
}
}*/
//숙제!!!!!!!!!!:문자들 수정, 좌표 설명해주는 설명창 예쁘게 정리!
0
0
3
wadepark2020
2024년 10월 20일
In 소스 코드 제출
#include <stdio.h> // 입출력문 printf, scanf 사용하기 위한 헤더
#include <windows.h> // move 사용하기위한 헤더
#include <conio.h> //_getch가 포함되어있는 헤더
#include <stdlib.h>
#include <time.h>
void move(int i, int j)
{
COORD Pos;
Pos.X = j;
Pos.Y = i;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), Pos);
}
void map()
{
int i,j,cnt=0;
move(3,3);
for(i=3;i<=40;i++)
{
move(i,3);
for(j=3;j<=40;j++)
{
if(i==3 || j==3|| i==40 || j==40)
{
printf("*");
}
else
{
printf(" ");
}
}
}
}
//i't'em=ti,tj
int main()
{
int mode = 0; // 0 wasd위왼아오 , 1 sdwa위왼아오
int pi=5, pj=5; // player의 위치
int ti,tj; // item $의 위치
int ai,aj; // 'a'ddress(item @의 위치)
int mi,mj; //마이너스의 m임!(item ?의 위치)
int ci,cj; //item &의 위치 // item &를 먹을경우, 조이스틱이 반대로 된다.
int ri,rj; //item #의 위치 // item #을 먹을 경우, 모든 아이템의 위치가 랜덤으로 바뀐다.
srand(time(NULL));
// 플레이어 점수
int cnt=0;
//배경 출력
map();
//플레이어 출력
move(pi,pj);
printf("*");
// 아이템 랜덤 위치 정하고 출력
ti = rand()%36+4; // 4 ~ 39 사이의 랜덤수 생성
tj = rand()%36+4; // 4 ~ 39 사이의 랜덤수 생성
move(ti,tj);
printf("$");
ai=rand()%36+4;
aj=rand()%36+4;
move(ai,aj);
printf("@");
mi=rand()%36+4;
mj=rand()%36+4;
move(mi,mj);
printf("?");
ci=rand()%36+4;
cj=rand()%36+4;
move(ci,cj);
printf("&");
// 현재 상태 나타내기
move(5,50);
printf("이걸 못해? 수준 ㅉ");
move(7,50);
printf("꼬우면 잘하던가 ㅋ 10점 찍으면 인정한다 ㅋ");
move(10,50);
printf(" coordinate(*의 좌표) : %2d %2d",pi,pj);
move(20,50);
printf(" score(점수) : %d",cnt);
move(30,50);
printf(" $(+1점) : %d %d",ti,tj); //아이템 $의 좌표 옆에 출력하기
move(40,50);
printf(" @(+2점) : %2d %2d",ai,aj); // 아이템 @의 좌표 옆에 출력하기
move(45,50);
printf(" ?(-3점) : %2d %2d",mi,mj); //아이템 ?의 좌표 옆에 출력하기
move(25,50);
printf(" &(방향키 반대로 ㅋ) : %d %d",ci,cj); //item&의 좌표 옆에 출력하기!!
// 플레이어 이동 시작
for(;;)
{
// 키보드 입력받기
char x = _getch();
move(pi,pj);
printf(" ");
// 입력받은 문자에 따라 플레이어 위치 이동하기
if (mode==0)
{
if(x=='w')
{
if(pi>=5) pi--;
}
else if(x=='a')
{
if(pj>=5)pj--;
}
else if(x=='s')
{
if(pi<=38)pi++;
}
else if(x=='d')
{
if(pj<=38)pj++;
}
}
else
{
if(x=='s')
{
if(pi>=5) pi--;
}
else if(x=='d')
{
if(pj>=5)pj--;
}
else if(x=='w')
{
if(pi<=38)pi++;
}
else if(x=='a')
{
if(pj<=38)pj++;
}
}
// 이동된 위치에서 플레이어 출력하기
move(pi,pj);
printf("*");
if(pi==ti && pj==tj) // item 먹었으면
{
cnt=cnt+1;
// 새로운 곳에 아이템을 생성
ti = rand()%36+4; // 4 ~ 39 사이의 랜덤수 생성
tj = rand()%36+4; // 4 ~ 39 사이의 랜덤수 생성
move(ti,tj);
printf("$");
}
else if(pi==ai && pj==aj)
{
cnt=cnt+2; //아이템을 먹었을때 2점을 획득
ai=rand()%36+4;
aj=rand()%36+4;
move(ai,aj);
printf("@");
}
else if(pi==mi && pj==mj)
{
cnt=cnt-3; //아이템을 먹었을때 3점 감점
if(cnt<3)
{
cnt=0;
}
mi=rand()%36+4;
mj=rand()%36+4;
move(mi,mj);
printf("?");
}
else if(pi==ci && pj==cj)
{
mode = 1;
}
move(10,50);
printf(" coordinate(*의 좌표) : %2d %2d",pi,pj);
move(20,50);
printf(" score(점수) : %d",cnt);
move(30,50);
printf(" $(+1점) : %d %d",ti,tj); //아이템 $의 좌표 옆에 출력하기
move(40,50);
printf(" @(+2점) : %2d %2d",ai,aj); // 아이템 @의 좌표 옆에 출력하기
move(45,50);
printf(" ?(-3점) : %2d %2d",mi,mj); //아이템 ?의 좌표 옆에 출력하기
move(25,50);
printf(" &(방향키 반대로 ㅋ) : %d %d",ci,cj); //item&의 좌표 옆에 출력하기!!
if(cnt>=2)
{
break;
}
}
system("cls");
move(20,20);
printf("1라운드 통과하셨습니다!!");
move(21,20);
printf("스페이스 키를 누르시면 2라운드로 넘어갑니다");
char y=_getch();
if(y==' ')
{
system("cls");
mode = 0; // 0 wasd위왼아오 , 1 sdwa위왼아오
pi=5, pj=5; // player의 위치
srand(time(NULL));
// 플레이어 점수
cnt=0;
//배경 출력
map();
//플레이어 출력
move(pi,pj);
printf("*");
// 아이템 랜덤 위치 정하고 출력
ti = rand()%36+4; // 4 ~ 39 사이의 랜덤수 생성
tj = rand()%36+4; // 4 ~ 39 사이의 랜덤수 생성
move(ti,tj);
printf("$");
ai=rand()%36+4;
aj=rand()%36+4;
move(ai,aj);
printf("@");
mi=rand()%36+4;
mj=rand()%36+4;
move(mi,mj);
printf("?");
ci=rand()%36+4;
cj=rand()%36+4;
move(ci,cj);
printf("&");
ri=rand()%36+4;
rj=rand()%36+4;
move(ri,rj);
printf("#");
// 현재 상태 나타내기
move(5,50);
printf("이걸 못해? 수준 ㅉ");
move(7,50);
printf("꼬우면 잘하던가 ㅋ 10점 찍으면 인정한다 ㅋ");
move(10,50);
printf(" coordinate(*의 좌표) : %2d %2d",pi,pj);
move(20,50);
printf(" score(점수) : %d",cnt);
move(30,50);
printf(" $(+1점) : %d %d",ti,tj); //아이템 $의 좌표 옆에 출력하기
move(40,50);
printf(" @(+2점) : %2d %2d",ai,aj); // 아이템 @의 좌표 옆에 출력하기
move(45,50);
printf(" ?(-3점) : %2d %2d",mi,mj); //아이템 ?의 좌표 옆에 출력하기
move(25,50);
printf(" &(방향키 반대로 ㅋ) : %d %d",ci,cj); //item&의 좌표 옆에 출력하기!!
move(47,50);
printf(" #(아이템들의 위치가 랜덤으로 초기화) :%d %d",ri,rj); //item#의 좌표 옆에 출력하기!!
for(;;)
{
// 키보드 입력받기
char x = _getch();
move(pi,pj);
printf(" ");
// 입력받은 문자에 따라 플레이어 위치 이동하기
if (mode==0)
{
if(x=='w')
{
if(pi>=5) pi--;
}
else if(x=='a')
{
if(pj>=5)pj--;
}
else if(x=='s')
{
if(pi<=38)pi++;
}
else if(x=='d')
{
if(pj<=38)pj++;
}
}
else
{
if(x=='s')
{
if(pi>=5) pi--;
}
else if(x=='d')
{
if(pj>=5)pj--;
}
else if(x=='w')
{
if(pi<=38)pi++;
}
else if(x=='a')
{
if(pj<=38)pj++;
}
}
// 이동된 위치에서 플레이어 출력하기
move(pi,pj);
printf("*");
if(pi==ti && pj==tj) // item 먹었으면
{
cnt=cnt+1;
// 새로운 곳에 아이템을 생성
ti = rand()%36+4; // 4 ~ 39 사이의 랜덤수 생성
tj = rand()%36+4; // 4 ~ 39 사이의 랜덤수 생성
move(ti,tj);
printf("$");
}
else if(pi==ai && pj==aj)
{
cnt=cnt+2; //아이템을 먹었을때 2점을 획득
ai=rand()%36+4;
aj=rand()%36+4;
move(ai,aj);
printf("@");
}
else if(pi==mi && pj==mj)
{
cnt=cnt-3; //아이템을 먹었을때 3점 감점
if(cnt<3)
{
cnt=0;
}
mi=rand()%36+4;
mj=rand()%36+4;
move(mi,mj);
printf("?");
}
else if(pi==ci && pj==cj)
{
mode = 1;
}
else if(pi==ri && pj==rj)
{
move(ti,tj);
printf(" ");
ti = rand()%36+4; // 4 ~ 39 사이의 랜덤수 생성
tj = rand()%36+4; // 4 ~ 39 사이의 랜덤수 생성
move(ti,tj);
printf("$");
move(ai,aj);
printf(" ");
ai=rand()%36+4;
aj=rand()%36+4;
move(ai,aj);
printf("@");
move(mi,mj);
printf(" ");
mi=rand()%36+4;
mj=rand()%36+4;
move(mi,mj);
printf("?");
move(ci,cj);
printf(" ");
ci=rand()%36+4;
cj=rand()%36+4;
move(ci,cj);
printf("&");
ri=rand()%36+4;
rj=rand()%36+4;
move(ri,rj);
printf("#");
}
move(10,50);
printf(" coordinate(*의 좌표) : %2d %2d",pi,pj);
move(20,50);
printf(" score(점수) : %d",cnt);
move(30,50);
printf(" $(+1점) : %d %d",ti,tj); //아이템 $의 좌표 옆에 출력하기
move(40,50);
printf(" @(+2점) : %2d %2d",ai,aj); // 아이템 @의 좌표 옆에 출력하기
move(45,50);
printf(" ?(-3점) : %2d %2d",mi,mj); //아이템 ?의 좌표 옆에 출력하기
move(25,50);
printf(" &(방향키 반대로 ㅋ) : %d %d",ci,cj); //item&의 좌표 옆에 출력하기!!
move(47,50);
printf(" #(아이템들의 위치가 랜덤으로 초기화) :%d %d",ri,rj); //item#의 좌표 옆에 출력하기!!
if(cnt>=20)
{
break;
}
}
}
}
// hw : 일정 점수가 넘어가면 라운드 상승 ( 어려워지도록, 두칸식움직여.. 감점 아이템 늘어나... 5번안에 못가면 아이템위치바껴 ,,,,,, )
//라운드와 라운드 사이에 ( 시각적인요소 라운드1 통과 라운드 2 시작 )
/*
#include <stdio.h>
int main()
{
srand(time(NULL));0
for(int i=0;i<10;i++)
{
//int x = rand(); // 0 ~ 324742 사이의 랜덤수
int x = rand()%10+1;
printf("%d ",x);
}
}*/
0
0
5
wadepark2020
2024년 10월 13일
In 소스 코드 제출
#include <stdio.h> // 입출력문 printf, scanf 사용하기 위한 헤더
#include <windows.h> // move 사용하기위한 헤더
#include <conio.h> //_getch가 포함되어있는 헤더
#include <stdlib.h>
#include <time.h>
void move(int i, int j)
{
COORD Pos;
Pos.X = j;
Pos.Y = i;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), Pos);
}
void map()
{
int i,j,cnt=0;
move(3,3);
for(i=3;i<=40;i++)
{
move(i,3);
for(j=3;j<=40;j++)
{
if(i==3 || j==3|| i==40 || j==40)
{
printf("*");
}
else
{
printf(" ");
}
}
}
}
//i't'em=ti,tj
int main()
{
int mode = 0; // 0 wasd위왼아오 , 1 sdwa위왼아오
int pi=5, pj=5; // player의 위치
int ti,tj; // item $의 위치
int ai,aj; // 'a'ddress(item @의 위치)
int mi,mj; //마이너스의 m임!(item ?의 위치)
int ci,cj; //item &의 위치 // item &를 먹을경우, 조이스틱이 반대로 된다.
srand(time(NULL));
// 플레이어 점수
int cnt=0;
//배경 출력
map();
//플레이어 출력
move(pi,pj);
printf("*");
// 아이템 랜덤 위치 정하고 출력
ti = rand()%36+4; // 4 ~ 39 사이의 랜덤수 생성
tj = rand()%36+4; // 4 ~ 39 사이의 랜덤수 생성
move(ti,tj);
printf("$");
ai=rand()%36+4;
aj=rand()%36+4;
move(ai,aj);
printf("@");
mi=rand()%36+4;
mj=rand()%36+4;
move(mi,mj);
printf("?");
ci=rand()%36+4;
cj=rand()%36+4;
move(ci,cj);
printf("&");
// 현재 상태 나타내기
move(50,10);
printf("이걸 못해? 수준 ㅉ");
move(55,5);
printf("꼬우면 잘하던가 ㅋ 30점 찍으면 인정한다 ㅋ");
move(10,50);
printf(" coordinate(*의 좌표) : %2d %2d",pi,pj);
move(20,50);
printf(" score(점수) : %d",cnt);
move(30,50);
printf(" $(+1점) : %d %d",ti,tj); //아이템 $의 좌표 옆에 출력하기
move(40,50);
printf(" @(+2점) : %2d %2d",ai,aj); // 아이템 @의 좌표 옆에 출력하기
move(50,50);
printf(" ?(-3점) : %2d %2d",mi,mj); //아이템 ?의 좌표 옆에 출력하기
move(60,50);
printf(" &(방향키 반대로 ㅋ) : %d %d",ci,cj); //item&의 좌표 옆에 출력하기!!
// 플레이어 이동 시작
for(;;)
{
// 키보드 입력받기
char x = _getch();
move(pi,pj);
printf(" ");
// 입력받은 문자에 따라 플레이어 위치 이동하기
if (mode==0)
{
if(x=='w')
{
if(pi>=5) pi--;
}
else if(x=='a')
{
if(pj>=5)pj--;
}
else if(x=='s')
{
if(pi<=38)pi++;
}
else if(x=='d')
{
if(pj<=38)pj++;
}
}
else
{
if(x=='s')
{
if(pi>=5) pi--;
}
else if(x=='d')
{
if(pj>=5)pj--;
}
else if(x=='w')
{
if(pi<=38)pi++;
}
else if(x=='a')
{
if(pj<=38)pj++;
}
}
// 이동된 위치에서 플레이어 출력하기
move(pi,pj);
printf("*");
if(pi==ti && pj==tj) // item 먹었으면
{
cnt=cnt+1;
// 새로운 곳에 아이템을 생성
ti = rand()%36+4; // 4 ~ 39 사이의 랜덤수 생성
tj = rand()%36+4; // 4 ~ 39 사이의 랜덤수 생성
move(ti,tj);
printf("$");
}
else if(pi==ai && pj==aj)
{
cnt=cnt+2; //아이템을 먹었을때 2점을 획득
ai=rand()%36+4;
aj=rand()%36+4;
move(ai,aj);
printf("@");
}
else if(pi==mi && pj==mj)
{
cnt=cnt-3; //아이템을 먹었을때 3점 감점
if(cnt<3)
{
cnt=0;
}
mi=rand()%36+4;
mj=rand()%36+4;
move(mi,mj);
printf("?");
}
else if(pi==ci && pj==cj)
{
mode = 1;
}
}
}
// hw : 일정 점수가 넘어가면 라운드 상승 ( 어려워지도록, 두칸식움직여.. 감점 아이템 늘어나... 5번안에 못가면 아이템위치바껴 ,,,,,, )
//라운드와 라운드 사이에 ( 시각적인요소 라운드1 통과 라운드 2 시작 )
/*
#include <stdio.h>
int main()
{
srand(time(NULL));0
for(int i=0;i<10;i++)
{
//int x = rand(); // 0 ~ 324742 사이의 랜덤수
int x = rand()%10+1;
printf("%d ",x);
}
}
*/
0
0
3
wadepark2020
2024년 10월 13일
In 소스 코드 제출
/*
#include <stdio.h> // 입출력문 printf, scanf 사용하기 위한 헤더
#include <windows.h> // move 사용하기위한 헤더
#include <conio.h> //_getch가 포함되어있는 헤더
#include <stdlib.h>
#include <time.h>
void move(int i, int j)
{
COORD Pos;
Pos.X = j;
Pos.Y = i;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), Pos);
}
void map()
{
int i,j,cnt=0;
move(3,3);
for(i=3;i<=40;i++)
{
move(i,3);
for(j=3;j<=40;j++)
{
if(i==3 || j==3|| i==40 || j==40)
{
printf("*");
}
else
{
printf(" ");
}
}
}
}
//i't'em=ti,tj
int main()
{
int mode = 0; // 0 wasd위왼아오 , 1 sdwa위왼아오
int pi=5, pj=5; // player의 위치
int ti,tj; // item $의 위치
int ai,aj; // 'a'ddress(item @의 위치)
int mi,mj; //마이너스의 m임!(item ?의 위치)
int ci,cj; //item &의 위치 // item &를 먹을경우, 조이스틱이 반대로 된다.
srand(time(NULL));
// 플레이어 점수
int cnt=0;
//배경 출력
map();
//플레이어 출력
move(pi,pj);
printf("*");
// 아이템 랜덤 위치 정하고 출력
ti = rand()%36+4; // 4 ~ 39 사이의 랜덤수 생성
tj = rand()%36+4; // 4 ~ 39 사이의 랜덤수 생성
move(ti,tj);
printf("$");
ai=rand()%36+4;
aj=rand()%36+4;
move(ai,aj);
printf("@");
mi=rand()%36+4;
mj=rand()%36+4;
move(mi,mj);
printf("?");
ci=rand()%36+4;
cj=rand()%36+4;
move(ci,cj);
printf("&");
// 현재 상태 나타내기
move(50,10);
printf("이걸 못해? 수준 ㅉ");
move(55,5);
printf("꼬우면 잘하던가 ㅋ 30점 찍으면 인정한다 ㅋ");
move(10,50);
printf(" coordinate(*의 좌표) : %2d %2d",pi,pj);
move(20,50);
printf(" score(점수) : %d",cnt);
move(30,50);
printf(" $(+1점) : %d %d",ti,tj); //아이템 $의 좌표 옆에 출력하기
move(40,50);
printf(" @(+2점) : %2d %2d",ai,aj); // 아이템 @의 좌표 옆에 출력하기
move(50,50);
printf(" ?(-3점) : %2d %2d",mi,mj); //아이템 ?의 좌표 옆에 출력하기
move(60,50);
printf(" &(방향키 반대로 ㅋ) : %d %d",ci,cj); //item&의 좌표 옆에 출력하기!!
// 플레이어 이동 시작
for(;;)
{
// 키보드 입력받기
char x = _getch();
move(pi,pj);
printf(" ");
// 입력받은 문자에 따라 플레이어 위치 이동하기
if (mode==0)
{
if(x=='w')
{
if(pi>=5) pi--;
}
else if(x=='a')
{
if(pj>=5)pj--;
}
else if(x=='s')
{
if(pi<=38)pi++;
}
else if(x=='d')
{
if(pj<=38)pj++;
}
}
else
{
if(x=='s')
{
if(pi>=5) pi--;
}
else if(x=='d')
{
if(pj>=5)pj--;
}
else if(x=='w')
{
if(pi<=38)pi++;
}
else if(x=='a')
{
if(pj<=38)pj++;
}
}
// 이동된 위치에서 플레이어 출력하기
move(pi,pj);
printf("*");
if(pi==ti && pj==tj) // item 먹었으면
{
cnt=cnt+1;
// 새로운 곳에 아이템을 생성
ti = rand()%36+4; // 4 ~ 39 사이의 랜덤수 생성
tj = rand()%36+4; // 4 ~ 39 사이의 랜덤수 생성
move(ti,tj);
printf("$");
}
else if(pi==ai && pj==aj)
{
cnt=cnt+2; //아이템을 먹었을때 2점을 획득
ai=rand()%36+4;
aj=rand()%36+4;
move(ai,aj);
printf("@");
}
else if(pi==mi && pj==mj)
{
cnt=cnt-3; //아이템을 먹었을때 3점 감점
if(cnt<3)
{
cnt=0;
}
mi=rand()%36+4;
mj=rand()%36+4;
move(mi,mj);
printf("?");
}
else if(pi==ci && pj==cj)
{
mode = 1;
}
}
}
/*
#include <stdio.h>
int main()
{
srand(time(NULL));
for(int i=0;i<10;i++)
{
//int x = rand(); // 0 ~ 324742 사이의 랜덤수
int x = rand()%10+1;
printf("%d ",x);
}
}
*/
0
0
1
wadepark2020
2024년 10월 13일
In 소스 코드 제출
#include <stdio.h> // 입출력문 printf, scanf 사용하기 위한 헤더
#include <windows.h> // move 사용하기위한 헤더
#include <conio.h> //_getch가 포함되어있는 헤더
#include <stdlib.h>
#include <time.h>
void move(int i, int j)
{
COORD Pos;
Pos.X = j;
Pos.Y = i;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), Pos);
}
void map()
{
int i,j,cnt=0;
move(3,3);
for(i=3;i<=40;i++)
{
move(i,3);
for(j=3;j<=40;j++)
{
if(i==3 || j==3|| i==40 || j==40)
{
printf("*");
}
else
{
printf(" ");
}
}
}
}
//i't'em=ti,tj
int main()
{
int pi=5, pj=5; // player의 위치
int ti,tj; // item 위치
srand(time(NULL));
// 플레이어 점수
int cnt=0;
//배경 출력
map();
//플레이어 출력
move(pi,pj);
printf("*");
// 아이템 랜덤 위치 정하고 출력
ti = rand()%36+4; // 4 ~ 39 사이의 랜덤수 생성
tj = rand()%36+4; // 4 ~ 39 사이의 랜덤수 생성
move(ti,tj);
printf("$");
// 현재 상태 나타내기
move(10,50);
printf(" coordinate : %2d %2d",pi,pj);
move(20,50);
printf(" score : %d",cnt);
move(30,50);
printf(" item : %d %d",ti,tj); //아이템의 좌표 옆에 출력하기
// 플레이어 이동 시작
for(;;)
{
// 키보드 입력받기
char x = _getch();
move(pi,pj);
printf(" ");
// 입력받은 문자에 따라 플레이어 위치 이동하기
if(x=='w')
{
if(pi>=5) pi--;
}
else if(x=='a')
{
if(pj>=5)pj--;
}
else if(x=='s')
{
if(pi<=38)pi++;
}
else if(x=='d')
{
if(pj<=38)pj++;
}
// 이동된 위치에서 플레이어 출력하기
move(pi,pj);
printf("*");
if(pi==ti && pj==tj) // item 먹었으면
{
cnt=cnt+1;
// 새로운 곳에 아이템을 생성
ti = rand()%36+4; // 4 ~ 39 사이의 랜덤수 생성
tj = rand()%36+4; // 4 ~ 39 사이의 랜덤수 생성
move(ti,tj);
printf("$");
}
// 현재 상태 나타내기
move(10,50);
printf(" coordinate : %2d %2d",pi,pj);
move(20,50);
printf(" score : %d",cnt); //아이템을 먹었을때의 점수 출력하기
move(30,50);
printf(" item : %d %d",ti,tj); //아이템의 좌표 풀력하기
}
}
/*
#include <stdio.h>
int main()
{
srand(time(NULL));
for(int i=0;i<10;i++)
{
//int x = rand(); // 0 ~ 324742 사이의 랜덤수
int x = rand()%10+1;
printf("%d ",x);
}
}
*/
0
0
8
wadepark2020
더보기
bottom of page