top of page
게시판 게시물
hyc0514
2024년 5월 10일
In 소스 코드 제출
/*
#include <stdio.h>
int main()
{
int n, k, sum=0, a=0;
for(int i=0; i<4; i++)
{
scanf("%d %d", &n, &k);
sum-=n;
sum+=k;
if(a<sum)
{
a=sum;
}
}
printf("%d", a);
}
*/
/*
#include <stdio.h>
int main()
{
int a, b, n=0, k=0, sum=0;
scanf("%d %d", &a, &b);
for(; n*n<a; n++)
{
k=n;
}
for(; a<=n*n&&n*n<=b; n++)
{
sum=sum+n*n;
}
if(sum!=0)
{
printf("%d\n", sum);
printf("%d", k*k+2*k+1);
}
else
{
printf("-1");
}
}
*/
#include <stdio.h>
int main()
{
int n, a, sum=0;
scanf("%d", &n);
for(int i=0; i<n; i++)
{
for(int j=0; j<n; j++)
{
scanf("%1d", &a);
}
}
}
0
0
1
hyc0514
2024년 5월 08일
In 소스 코드 제출
#include <stdio.h>
int main()
{
int n, k, p, cnt=0, cnt2=0;
int a;
scanf("%d %d %d", &n, &k, &p);
for(int i=0; i<n; i++)
{
cnt=0;//<<<
for(int j=0; j<k; j++)
{
scanf("%d", &a);
if(a==0)
{
cnt++;
}
}
if(cnt<p)
{
cnt2++;
}
}
printf("%d", cnt2);
}
*/
/*
#include <stdio.h>
int main()
{
int n, a, b, cnt=0, sum=10000;
scanf("%d", &n);
for(int i=0; i<n; i++)
{
scanf("%d %d", &a, &b);
if(a<=b)
{
if(sum>b)
{
sum=b;
}
}
else
{
cnt++;
}
}
if(cnt==n)
{
printf("-1");
}
else
{
printf("%d", sum);
}
return 0;
}
*/
#include <stdio.h>
int main()
{
int n;
scanf("%d", &n);
for(int i=1; i<=n; i++)
{
if(i%2==1)
{
}
if(i==1)
{
break;
}
}
printf("%d", n);
}
0
0
1
hyc0514
2024년 5월 07일
In 소스 코드 제출
/*
#include <stdio.h>
int stack[1000]={};
int top=-1;
void push(int x)
{
top++;
stack[top]=x;
}
int pop()
{
if(top==-1)
return -1;
else
return stack[top--];
}
char a[150]={}, b[150]={};
int topa=0, topb=0;
void number_sort()
{
int arr=0;
char temp[150]={};
topa=strlen(a)-1;
topb=strlen(b)-1;
arr=strcmp(a, b);
if(topa<topb)
{
strcpy(temp,a);
strcpy(a,b);
strcpy(b,temp);
printf("-");
}
else if(topa==topb&&arr<0)
{
strcpy(temp,a);
strcpy(a,b);
strcpy(b,temp);
printf("-");
}
topa=strlen(a)-1;
topb=strlen(b)-1;
}
int main()
{
char c=0;
int numa=0, numb=0, num=0;
scanf("%s %s", a, b);
number_sort();
while(1)
{
numa=numb=0;
if(topa!=-1)
{
numa=a[topa--]-'0';
}
if(topb!=-1)
{
numb=b[topb--]-'0';
}
if(numa<numb)
{
a[topa]--;
numa+=10;
}
num=numa-numb;
push(num);
if(topa==-1&&topb==-1)
{
break;
}
}
int zero_print=0;
int x=0;
while(top!=-1)
{
x=pop();
if(zero_print==0&&x!=0)
zero_print=1;
if(zero_print==1)
printf("%d", x);
}
if(zero_print==0&&x==0)
printf("0");
return 0;
}
*/
/*
#include <stdio.h>
int main()
{
char n[101]={};
char k[101]={};
int a=0, b=0, c=0;
scanf("%s %s", n, k);
a=strlen(n);
b=strlen(k);
if(a>b)
{
printf("%s %s", n, k);
}
else if(a<b)
{
printf("%s %s", k, n);
}
else
{
c=strcmp(n, k);
if(c>0)
{
printf("%s %s", k, n);
}
else if(c<0)
{
printf("%s %s", n, k);
}
else
{
printf("%s %s", k, n);
}
}
return 0;
}
*/
#include <stdio.h>
int main()
{
int n, x, cnt=0;
int a[1000]={};
scanf("%d", &n);
for(int i=1; i<=n; i++)
{
scanf("%d", &a[i]);
}
for(int i=1; i<=n; i++)
{
cnt=0;
for (int j=i; j>=1; j--)
{
if(a[j]<a[j-1])
{
x=a[j-1];
a[j-1]=a[j];
a[j]=x;
cnt++;
}
}
if(cnt==0)
{
break;
}
}
printf("%d", cnt);
return 0;
}
0
0
1
hyc0514
2024년 5월 03일
In 소스 코드 제출
#include <stdio.h>
int stack[1000]={};
int top=-1;
void push(int x)
{
top++;
stack[top]=x;
}
int pop()
{
if(top==-1)
return -1;
else
return stack[top--];
}
int main()
{
char a[150]={}, b[150]={}, c=0;
int topa=0, topb=0, numa=0, numb=0, num=0;
scanf("%s %s", a, b);
topa=strlen(a)-1;
topb=strlen(b)-1;
while(1)
{
numa=numb=0;
if(topa!=-1)
{
numa=a[topa--]-'0';
}
if(topb!=-1)
{
numb=b[topb--]-'0';
}
if(numa<numb)
{
//a[topa]--;
//numa+=10;
strcpy(numa, numb);
}
num=numa-numb;
push(num);
if(topa==-1&&topb==-1)
{
break;
}
}
int zero_print=0;
int x=0;
while(top!=-1)
{
x=pop();
if(zero_print==0&&x!=0)
zero_print=1;
if(zero_print==1)
printf("%d", x);
}
if(zero_print==0&&x==0)
printf("0");
return 0;
}
/*
#include<stdio.h>
int main() {
char word1[1000] = "Hello";
char word2[1000] = "World";
char wordtemp[1000] = {0};
printf("%s %s\n", word1, word2);
strcpy(word1, wordtemp);
strcpy(word1, word2);
strcpy(wordtemp, word2);
printf("%s %s\n", word1, word2);
}
*/
0
0
1
hyc0514
2024년 4월 30일
In 소스 코드 제출
/*#include <stdio.h>
int stack[1000]={};
int top=-1;
void push(int x)
{
top++;
stack[top]=x;
}
int pop()
{
if(top==-1)
return -1;
else
return stack[top--];
}
int main()
{
char a[150]={}, b[150]={}, c=0;
int topa=0, topb=0, numa=0, numb=0, num=0;
scanf("%s %s", a, b);
topa=strlen(a)-1;
topb=strlen(b)-1;
// a가 b보다 큰 수다 (보장) ---> 숙제!!!1
while(1)
{
numa=numb=0;
if(topa!=-1)
{
numa=a[topa--]-'0';
}
if(topb!=-1)
{
numb=b[topb--]-'0';
}
if(numa<numb){
a[topa]--;
numa+=10;
}
num=numa-numb;
push(num);
if(topa==-1&&topb==-1)
{
break;
}
}
int zero_print=0;
int x;
while(top!=-1)
{
x = pop();
if(zero_print==0 && x!=0) zero_print=1;
if(zero_print==1) printf("%d", x);
}
return 0;
*/
/**
정렬 sort
내림차순 or 오름차순
a : easy but slow -> 버블, 선택, 삽입 ( 느려도되거나 ,정렬개수가 적을때 )
b : hard but fast -> 퀵, .. 기수.. 병합.. 힙...
집 -> 학원 : 버스 -> 비행기를 탄다면??
집 -> 미국 : 비행기
어떤 정렬을 선택할지?? 장점? 단점? ( 특성)
1. 버블 코드가 간단 but 항상 느려
2. 선택 코드가 인간적
3. 삽입 코드가 복잡한편 but < 정렬이 어느정도 되어있는경우 빠르다 >
4. 퀵 코드가 많이 복잡 ( 재귀.... )
1. 버블정렬
인접한 애들끼리 비교&교환
a[1] a[2] a[3] a[4] a[5]
5 1 4 2 3
round1. 4번비교 -> 5가 자기 자리 찾기
(5 1) 4 2 3
1 (5 4) 2 3
1 4 (5 2) 3
1 4 2 (5 3)
1 4 2 3 : 5
round2. 3번비교 -> 4가 자기자리 찾기
(1 4) 2 3 : 5
1 (4 2) 3 : 5
1 2 (4 3) : 5
1 2 3 : 4 5
>> 아직 4와 5만 정렬되었따...
round3. 2번비교 -> 3이 자기자리 찾기
(1 2) 3 : 4 5
1 (2 3) : 4 5
1 2 : 3 4 5
round4. 1번 비교 -> 2가 자기자리 찾기 ---> 5개중에 4개가 자기자리찾았으니까 나머지 하나도 당연히 자기자리에
(1 2) : 3 4 5
1 : 2 3 4 5 -> 1도 자동적으로 자기자리 찾기 끝
1 2 3 4 5 -> 정렬 완료
**/
/*
#include <stdio.h>
int main()
{
int n, x;
int a[10000]={};
scanf("%d", &n);
for(int i=1; i<=n; i++)
{
scanf("%d", &a[i]);
}
for(int i=1; i<=n; i++)
{
if (a[i]<a[i-1])
{
for (int j=i; j>=1; j--)
{
if (a[j]<a[j-1])
{
x=a[j-1];
a[j-1]=a[j];
a[j]=x;
}
}
}
}
for(int i=1; i<=n; i++)
{
printf("%d\n", a[i]);
}
return 0;
}
*/
/*
#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=i; j>=1; 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 n, x, cnt=0;
int a[1000]={};
scanf("%d", &n);
for(int i=1; i<=n; i++)
{
scanf("%d", &a[i]);
}
for(int i=1; i<=n; i++)
{
if (a[i]<a[i-1])
{
for (int j=i; j>=1; j--)
{
if (a[j]<a[j-1])
{
if(a[i]>a[i-1])
{
break;
}
else
{
cnt++;
x=a[j-1];
a[j-1]=a[j];
a[j]=x;
}
}
}
}
}
printf("%d", cnt);
return 0;
}
0
0
1
hyc0514
2024년 4월 24일
In 소스 코드 제출
/*
>>push(5)
a[0] a[1] a[2] a[3] a[4] a[5]
5
f=-1
b=0
>>push(7)
a[0] a[1] a[2] a[3] a[4] a[5]
5 7
f=-1
b=1
>>pop()
a[0] a[1] a[2] a[3] a[4] a[5]
5 7
f=0
b=1
front++;
return queue[front];
front : 마지막으로 나간 데이터의 위치
back : 마지막으로 들어온 데이터의 위치
#include <stdio.h>
int queue[1000]={};
int back=-1, front=-1;
void push(int a)
{
back++;
queue[back]=a;
}
int pop()
{
if(back==front) //만약 큐가 비어있으면 아무것도 하지 않는다.
{
return 0;
}
else
{
front++;
return queue[front];
}
}
int main()
{
int k;
char n[201]={};
scanf("%d\n", &k);
for(int i=0; i<k; i++)
{
gets(n);
if(n[0]=='p'&&n[1] =='u')
{
int arr=0;
int x=strlen(n);
for(int j=6; n[j]!=' '; j++)
{
arr*=10;
arr+=(n[j]-'0');
}
push(arr);
}
else if(n[0]=='f')
{
if(front==back)
{
printf("-1\n");
}
else
{
printf("%d\n", queue[front+1]);
}
}
else if(n[0]=='b'&&n[1]=='a'&&n[2]=='c'&&n[3]=='k')
{
if(back==front)
{
printf("-1\n");
}
else
{
printf("%d\n", queue[back]);
}
}
else if(n[0]=='p'&&n[1]=='o'&&n[2]=='p')
{
pop();
}
else if(n[0]=='s'&&n[1]=='i'&&n[2]=='z'&&n[3]=='e')
{
printf("%d\n", back-front);
}
else if(n[0]=='e'&&n[1]=='m'&&n[2]=='p'&&n[3]=='t'&&n[4]=='y')
{
if(back==front)
{
printf("true\n");
}
else
{
printf("false\n");
}
}
}
return 0;
}
*/
#include <stdio.h>
int stack[1000]={};
int top=-1;
void push(int x)
{
top++;
stack[top]=x;
}
int pop()
{
if(top==-1)
return -1;
else
return stack[top--];
}
int main()
{
char a, b, c=0;
int numa, numb,
scanf("%s\n%s", a, b);
}
0
0
1
hyc0514
2024년 4월 23일
In 소스 코드 제출
/*
#include <stdio.h>
int stack[100000]={};
int top=-1;
void push(int x)
{
top++;
stack[top]=x;
}
int pop()
{
if(top==-1)
return -1;
else
return stack[top--];
}
int main()
{
int n, h;
long long int sum=0;
scanf("%d", &n);
for(int i=0; i<n; i++)
{
scanf("%d", &h);
while(top!=-1&&h>=stack[top])
{
pop();
}
sum+=top+1;
push(h);
}
printf("%lld", sum);
return 0;
}
*/
#include <stdio.h>
int queue[1000]={};
int back=0, front=0;
void push(int a)
{
back++;
queue[back]=a;
}
int pop()
{
return queue[front++];
}
int main()
{
int k;
char n[201]={};
scanf("%d\n", &k);
for(int i=0; i<k; i++)
{
gets(n);
if(n[0]=='p'&&n[1] =='u'&&n[2]=='s'&&n[3]=='h')
{
int arr=0;
int x=strlen(n);
for(int j=6; j<x-2; j++)
{
arr*=10;
arr+=(n[j]-'0');
}
push(arr);
}
else if(n[0]=='f'&&n[1]=='r'&&n[2]=='o'&&n[3]=='n'&&n[4]=='t')
{
if(front==0)
{
printf("0\n");
}
else
{
printf("%d\n", queue[front]);
}
}
else if(n[0]=='b'&&n[1]=='a'&&n[2]=='c'&&n[3]=='k')
{
if(back==0)
{
printf("0\n");
}
else
{
printf("%d\n", queue[back]);
}
}
else if(n[0]=='p'&&n[1]=='o'&&n[2]=='p')
{
pop();
}
else if(n[0]=='s'&&n[1]=='i'&&n[2]=='z'&&n[3]=='e')
{
printf("%d\n", back-front);
}
else if(n[0]=='e'&&n[1]=='m'&&n[2]=='p'&&n[3]=='t'&&n[4]=='y')
{
if(back==front)
{
printf("true\n");
}
else
{
printf("false\n");
}
}
}
return 0;
}
0
0
1
hyc0514
2024년 4월 17일
In 소스 코드 제출
/*
#include <stdio.h>
#include <string.h>
int stack[1000]={};
int top=-1;
void push(int x)
{
top++;
stack[top]=x;
}
int pop()
{
if(top==-1)
return -1;
else
return stack[top--];
}
int main()
{
char a[150]={}, b[150]={}, c=0;
int topa=0, topb=0, numa=0, numb=0, num=0;
scanf("%s %s", a, b);
topa=strlen(a)-1;
topb=strlen(b)-1;
while(1)
{
numa=numb=0;
if(topa!=-1)
{
numa=a[topa--]-'0';
}
if(topb!=-1)
{
numb=b[topb--]-'0';
}
num=numa+numb+c;
push(num%10);
c=num/10;
if(topa==-1&&topb==-1)
{
if(c!=0)
{
push(num/10);
}
break;
}
}
while(top!=-1)
{
printf("%d", pop());
}
return 0;
}
6 9 7 6 4 6
6
7
9
*/
/*
#include <stdio.h>
int stack[1000000]={};
int top=-1;
void push(int x)
{
top++;
stack[top]=x;
}
int pop()
{
if(top==-1)
return -1;
else
return stack[top--];
}
int main()
{
int n, h;
scanf("%d", &n);
for(int i=0; i<n; i++)
{
scanf("%d", &h);
while(top!=-1 && stack[top]<=h)
{
pop();
}
push(h);
}
printf("%d", top+1);
return 0;
}
*/
#include <stdio.h>
long long int stack[80000];
int top=-1;
void push(int x)
{
top++;
stack[top]=x;
}
int pop()
{
if(top==-1)
return -1;
else
return stack[top--];
}
int main()
{
int n, a[80001]={};
scanf("%d", &n);
long long int sum=0;
for(int i=0; i<n; i++)
{
scanf("%lld", &a[i]);
if(top==-1)
{
push(n);
}
else if(a[top]<=a[i])
{
while(top!=-1&&(a[top]<=a[i]))
{
pop();
}
}
top++;
stack[top]=a[i];
sum+=top;
}
printf("%d", sum);
return 0;
}/*
#include <stdio.h>
#include <string.h>
int stack[1000]={};
int top=-1;
void push(int x)
{
top++;
stack[top]=x;
}
int pop()
{
if(top==-1)
return -1;
else
return stack[top--];
}
int main()
{
char a[150]={}, b[150]={}, c=0;
int topa=0, topb=0, numa=0, numb=0, num=0;
scanf("%s %s", a, b);
topa=strlen(a)-1;
topb=strlen(b)-1;
while(1)
{
numa=numb=0;
if(topa!=-1)
{
numa=a[topa--]-'0';
}
if(topb!=-1)
{
numb=b[topb--]-'0';
}
num=numa+numb+c;
push(num%10);
c=num/10;
if(topa==-1&&topb==-1)
{
if(c!=0)
{
push(num/10);
}
break;
}
}
while(top!=-1)
{
printf("%d", pop());
}
return 0;
}
6 9 7 6 4 6
6
7
9
*/
/*
#include <stdio.h>
int stack[1000000]={};
int top=-1;
void push(int x)
{
top++;
stack[top]=x;
}
int pop()
{
if(top==-1)
return -1;
else
return stack[top--];
}
int main()
{
int n, h;
scanf("%d", &n);
for(int i=0; i<n; i++)
{
scanf("%d", &h);
while(top!=-1 && stack[top]<=h)
{
pop();
}
push(h);
}
printf("%d", top+1);
return 0;
}
*/
#include <stdio.h>
long long int stack[80000];
int top=-1;
void push(int x)
{
top++;
stack[top]=x;
}
int pop()
{
if(top==-1)
return -1;
else
return stack[top--];
}
int main()
{
int n, a[80001]={};
scanf("%d", &n);
long long int sum=0;
for(int i=0; i<n; i++)
{
scanf("%lld", &a[i]);
if(top==-1)
{
push(n);
}
else if(a[top]<=a[i])
{
while(top!=-1&&(a[top]<=a[i]))
{
pop();
}
}
top++;
stack[top]=a[i];
sum+=top;
}
printf("%d", sum);
return 0;
}
0
0
1
hyc0514
2024년 4월 16일
In 소스 코드 제출
/*
#include <stdio.h>
char stack[1000]={};
int top=-1, cnt=0;
void push(char x)
{
top++;
stack[top]=x;
}
char pop()
{
if(top==-1)
{
return -1;
}
else
{
return stack[top--];
}
}
int main()
{
// 정수 문자
int n;
char a[210]={};
scanf("%d\n%s", &n, a);
for(int i=n-1; i>=0; i--)
{
push(a[i]);
cnt++;
if(cnt%3==0&&cnt<n)
{
push(',');
}
}
while(top!=-1)
{
printf("%c", pop());
}
return 0;
}
*/
#include <stdio.h>
int stack[100000000]={};
int top=-1;
void push(int x)
{
top++;
stack[top]=x;
}
int pop()
{
if(top==-1)
{
return -1;
}
else
{
return stack[top--];
}
}
int main()
{
char a[150]={}, b[150]={}, c=0;
int topa, topb, numa, numb, num;
scanf("%s\n%s", a, b);
topa=strlen(a)-1;
topb=strlen(b)-1;
while(1)
{
numa=numb=0;
if(topa!=-1)
{
numa = a[topa--]-'0';
}
if(topb!=-1)
{
numb = b[topb--]-'0';
}
num = numa+numb+c;
push(num%10);
c=num/10;
if(topa==-1&&topb==-1)
{
break;
}
}
while(top!=-1)
{
printf("%d", pop());
}
return 0;
}
0
0
1
hyc0514
2024년 4월 12일
In 소스 코드 제출
/*
#include <stdio.h>
int stack[1000]={};
int top=-1;
void push(int a)
{
top++;
stack[top]=a;
}
int pop()
{
if(top==-1)
return -1;
return stack[top--];
}
int main()
{
int k;
char n[201]={};
scanf("%d\n", &k);
for(int i=0; i<k; i++)
{
gets(n);
if(n[0]=='p'&&n[1] =='u'&&n[2]=='s'&&n[3]=='h')
{
int arr=0;
int x=strlen(n);
for(int j=6; j<x-2; j++)
{
arr*=10;
arr+=(n[j]-'0');
}
push(arr);
// push( 123 )
// 6 8
// push( 1234 )
// 6 9
// 6~ strlen(n)-2
// ascii code: '4' - '0' >>>real 4
}
else if(n[0]=='t'&&n[1]=='o'&&n[2]=='p')
{
if(top==-1)
{
printf("-1\n");
}
else
{
printf("%d\n", stack[top]);
}
}
else if(n[0]=='p'&&n[1]=='o'&&n[2]=='p')
{
pop();
}
else if(n[0]=='s'&&n[1]=='i'&&n[2]=='z'&&n[3]=='e')
{
printf("%d\n", top+1);
}
else if(n[0]=='e'&&n[1]=='m'&&n[2]=='p'&&n[3]=='t'&&n[4]=='y')
{
if(top<0)
{
printf("true\n");
}
else
{
printf("false\n");
}
}
}
return 0;
}
*/
#include <stdio.h>
stack[1000]={};
top=-1;
void push(int a)
{
top++;
stack[top]=a;
}
int pop()
{
if(top==-1)
return -1;
return stack[top--];
}
int main()
{
int a, n[100]={};
int k[100000]={};
scanf("%d\n", &a);
for(int i=0; i<a; i++)
{
scanf("%d\n", &k[i]);
}
}
0
0
1
hyc0514
2024년 4월 09일
In 소스 코드 제출
#include <stdio.h>
int stack[1000]={};
int top=-1;
void push(int n)
{
top++;
stack[top]=n;
}
int pop()
{
if(top==-1)
return -1;
return stack[top--];
}
int main()
{
int a;
scanf("%d", &a);
while(1)
{
push(a%10);
a/=10;
if(a==0)
{
break;
}
}
while(top!=-1)
{
printf("%d", pop());
}
return 0;
}
/*
#include <stdio.h>
int main()
{
int a;
scanf("%d", &a);
while(1)
{
printf("%d", a%10);
a/=10;
if(a==0)
{
break;
}
}
return 0;
}
*/
0
0
1
hyc0514
2024년 4월 03일
In 소스 코드 제출
/*
#include <stdio.h>
int f(int n)
{
int cnt=0;
while(n!=0)
{
if(n%10==1)
cnt++;
n/=10;
}
return cnt;
}
int main()
{
int a, b, c, sum=0;
scanf("%d %d", &a, &b);
for(int i=a; i<=b; i++)
{
sum+=f(i);
}
printf("%d", sum);
return 0;
}
*/
/*
#include <stdio.h>
int main()
{
int a[50][50]={};
int n, cnt=0, k;
scanf("%d %d", &k, &n);
for(int i=0; i<k; i++)
{
for(int j=0; j<k; j++)
{
scanf("%d", &a[i][j]);
}
}
for(int i=0; i<k; i++)
{
for(int j=0; j<k; j++)
{
if(0<=a[i][j])
{
a[i][j]+=n;
if(0<=a[i][j]&&a[i][j]<=5)
{
cnt++;
}
}
else if(a[i][j]==-1)
{
}
}
}
printf("%d", cnt);
return 0;
}
자료 구조 data structure
A level : 스택, 큐, 정렬
B level: 이진 탐색, 그래프, dfs/bfs
C level : 트리
Stack : 쌓는거 ( 나중에 들어오는게 먼저 나감)
vs
Queue: 먼저 들어오는게 먼저 나감
#include <stdio.h>
int stack[1000]={};
int top=-1; // top : .마지막 데이터의 위치 ( -1이라면 스택이비어있따)
void view()
{
// 스택에 있는 것 전부 출력
printf("stack [ ");
for(int i=0;i<=top;i++)
{
printf("%d ",stack[i]);
}
printf("]\n");
}
void push(int n)
{
top++;
stack[top]=n;
}
int pop()
{
//** pop은 스택이 비어있지 않을때만 수행되도록!!**
if(top==-1) return -1;
return stack[top--];
}
int main()
{
// 스택에 5 push
// top++;
// stack[top]=5;
push(5);
view();
// 스택에 10 push
// top++;
// stack[top]=10;
push(10);
view();
// 스택에 7 push
// top++;
// stack[top]=7;
push(7);
view();
// 스택에서 pop
printf("%d\n",pop());
view();
// 스택에 있는 모든 원소를 pop 해라
while(top != -1)
{
printf("%d ", pop());
}
return 0;
}
*/
/*
#include <stdio.h>
int stack[1000]={};
int top=-1;
void push(int n)
{
top++;
stack[top]=n;
}
int pop()
{
if(top==-1) return -1;
return stack[top--];
}
int main()
{
int a,x;
scanf("%d", &a);
for(int i=0; i<a; i++)
{
scanf("%d", &x);
push(x);
}
while(top!=-1)
{
printf("%d ", pop());
}
return 0;
}
*/
#include <stdio.h>
int stack[1000]={};
int top=-1;
void push(int n)
{
top++;
stack[top]=n;
}
int pop()
{
if(top==-1) return -1;
return stack[top--];
}
int main()
{
int a;
scanf("%d", &a);
push(a);
while(top!=-1)
{
printf("%d ", pop());
}
return 0;
}
0
0
1
hyc0514
2024년 3월 28일
In 소스 코드 제출
/*
#include <stdio.h>
int count369(int x)
{
//x에 3이나 6이나 9가 들어간 개수 리턴
}
int main()
{
int a, b, c, i;
scanf("%d %d", &a, &b);
for(i=a; i<=b; i++)
{
c = count369(i);
if(c==0)
printf("%d\n", i);
else
{
for(c번반복)
{
printf("K");
}
printf("\n");
}
}
return 0;
}
*/
/*
#include <stdio.h>
int f(int n)
{
int cnt=0;
while(n!=0)
{
if (n%10==3||n%10==6||n%10 == 9)
cnt++;
n/=10;
}
return cnt;
}
int main()
{
int a, b, c;
scanf("%d %d", &a, &b);
for (int i=a; i<=b; i++)
{
c=f(i);
if (c==0)
printf("%d\n", i);
else
{
for (int j=0; j<c; j++)
{
printf("K");
}
printf("\n");
}
}
return 0;
}
*/
/*
#include <stdio.h>
int main()
{
int n, i, j, a=0, b=0;
scanf("%d", &n);
int c[100]={};
for(i=0; i<n; i++)
{
scanf("%d", &c[i]);
}
for(j=1; j<n; j++)
{
if(c[j-1]<c[j])
a++;
else if(c[j-1]>c[j])
b++;
}
if(c[n-2]<c[n-1])
a++;
if(c[n-2]>c[n-1])
b++;
if(a==n)
printf("오름차순");
else if(b==n)
printf("내림차순");
else
printf("섞임");
return 0;
}
*/
/*
#include <stdio.h>
int main()
{
int a[10], sum=0, i;
for(i=0; i<10; i++)
{
scanf("%1d", &a[i]);
sum+=a[i];
}
if (sum%7==4)
printf("Bad");
else
printf("Good");
return 0;
}
*/
/*
#include <stdio.h>
int main()
{
int a, b;
scanf("%d %d", &a, &b);
printf("%d", (10*30+5+30)-(a*30+a/2+b));
}
*/
/*
#include <stdio.h>
int main()
{
int k, n, c=0, a;
scanf("%d %d", &k, &n);
while(k>=n)
{
a=((k/n));
k-=(a*n);
k+=a;
c+=a;
}
printf("%d", c);
return 0;
}
*/
0
0
1
hyc0514
2024년 3월 27일
In 소스 코드 제출
/*
#include <stdio.h>
int main()
{
int a, b;
int y, m, d;
scanf("%d-%d",&a,&b);
y=a/10000;
m=(a/100)%100;
d=a%100;
b=b/1000000;
//짝수면 "even" 홀수면 "odd" 출력
//printf( a%2==0 ? "even" : "odd");
printf(b<=2 ? "19" : "20");
printf("%02d/%02d/%02d ", y, m, d);
printf(b%2==1 ? "M" : "F");
return 0;
}
*/
#include <stdio.h>
int a, b;
int f(int i)
{
for(i=a; i<=b; i++)
{
if(i%10==3||i%10==6||i%10==9||i/10==3||i/10==6||i/10==9)
{
return 1;
}
else if(i%33==0)
{
return 2;
}
else
{
return 0;
}
}
}
int main()
{
int i;
scanf("%d %d", &a, &b);
for(i=a; i<=b; i++)
{
f(a);
if(a==1)
{
printf("K\n");
}
else if(a==2)
{
printf("KK\n");
}
else
{
printf("%d\n", i);
}
}
return 0;
}
0
0
2
hyc0514
2024년 3월 21일
In 소스 코드 제출
/*
#include <stdio.h>
int main()
{
int a, b, c, d, e, i, j, f, max=0;
scanf("%d %d %d", &a, &b, &c);
d=(b+c);
e=d/60;
i=d%60;
if(c<60)
{
if(d<=59)
{
printf("%d %d", a, d);
}
else if(a==23)
{
printf("0 %d", abs(60-d));
}
else
{
printf("%d %d", a+e, i);
}
}
else if(a+e<24)
{
printf("%d %d", a+e, i);
}
else
{
j=(a+e)/24+(a+e)%24-1;
printf("%d %d", j, i);
}
}
*/
/*
#include <stdio.h>
int main()
{
int a, n, cnt=0,sum=0;
// sum : 총 점수 , cnt : 연속으로 맞은 횟수 ( 얻는 점수 )
scanf("%d", &n);
for(int i=0; i<n; i++)
{
scanf("%d", &a);
if(a==0)
{
cnt=0;
}
else if(a==1)
{
cnt++;
sum+=cnt;
}
}
printf("%d", sum);
return 0;
}
*/
/*
#include <stdio.h>
int isprime(int x)
{
// x가 소수라면 1, 아니라면 0 리턴
// 소수 : 약수가 1과 자기자신 총 2개뿐인 수
int cnt=0;
for(int i=1; i<=x; i++)
{
if(x%i==0)
{
cnt++;
if(cnt>2)
return 0;
}
}
if(cnt==2)
{
return 1;
}
}
int main()
{
int m, n, sum=0, min=10000;
scanf("%d %d", &m, &n);
for(int i=m; i<=n; i++)
{
if(isprime(i)==1) // i가 소수인지 판단?
{
sum+=i;
if(min>i)
{
min=i;
}
}
}
if(sum==0)
{
printf("-1");
}
else
{
printf("%d\n", sum);
printf("%d", min);
}
return 0;
}
*/
/*
#include <stdio.h>
int main()
{
int a, b, c, d, e;
scanf("%d %d %d", &a, &b, &c);
d=b+c;
e=d/60;
printf("%d %d", (a+e)%24, d%60);
return 0;
}
*//*
#include <stdio.h>
int main()
{
int a, b, c, d, e, i, j, f, max=0;
scanf("%d %d %d", &a, &b, &c);
d=(b+c);
e=d/60;
i=d%60;
if(c<60)
{
if(d<=59)
{
printf("%d %d", a, d);
}
else if(a==23)
{
printf("0 %d", abs(60-d));
}
else
{
printf("%d %d", a+e, i);
}
}
else if(a+e<24)
{
printf("%d %d", a+e, i);
}
else
{
j=(a+e)/24+(a+e)%24-1;
printf("%d %d", j, i);
}
}
*/
/*
#include <stdio.h>
int main()
{
int a, n, cnt=0,sum=0;
// sum : 총 점수 , cnt : 연속으로 맞은 횟수 ( 얻는 점수 )
scanf("%d", &n);
for(int i=0; i<n; i++)
{
scanf("%d", &a);
if(a==0)
{
cnt=0;
}
else if(a==1)
{
cnt++;
sum+=cnt;
}
}
printf("%d", sum);
return 0;
}
*/
/*
#include <stdio.h>
int isprime(int x)
{
// x가 소수라면 1, 아니라면 0 리턴
// 소수 : 약수가 1과 자기자신 총 2개뿐인 수
int cnt=0;
for(int i=1; i<=x; i++)
{
if(x%i==0)
{
cnt++;
if(cnt>2)
return 0;
}
}
if(cnt==2)
{
return 1;
}
}
int main()
{
int m, n, sum=0, min=10000;
scanf("%d %d", &m, &n);
for(int i=m; i<=n; i++)
{
if(isprime(i)==1) // i가 소수인지 판단?
{
sum+=i;
if(min>i)
{
min=i;
}
}
}
if(sum==0)
{
printf("-1");
}
else
{
printf("%d\n", sum);
printf("%d", min);
}
return 0;
}
*/
/*
#include <stdio.h>
int main()
{
int a, b, c, d, e;
scanf("%d %d %d", &a, &b, &c);
d=b+c;
e=d/60;
printf("%d %d", (a+e)%24, d%60);
return 0;
}
*/
0
0
2
hyc0514
2024년 3월 20일
In 소스 코드 제출
/*
#include <stdio.h>
typedef struct
{
int score;
char name[11];
}student;
int main()
{
int n, k, max=0; // max : 최대값의 위치
student s[101];
scanf("%d", &n);
scanf("%d", &k);
for(int i=0; i<n; i++)
{
scanf("%s %d", s[i].name, &s[i].score);
}
// k번 최대값을 찾기
for(int i=0; i<k; i++)
{
for(int j=0;j<n;j++)
{
if(s[max].score<s[j].score)
{
max=j;
}
}
printf("%s\n",s[max].name);
s[max].score=0;
}
return 0;
}
*/
/**
c 문법
재귀(완)
구조체(완)
포인터
c 자료구조
정렬 ( 버블정렬, 선택, 삽입, 퀵 ... ) - 조금배움
스택 큐
이진 탐색
그래프 dfs/bfs
포인터 point + er : 뭔가를 가리키는애 : 주소를 알고있다
가리키다 + 하는애
int a=10;
float b = 0.5;
int* pa = &a; // a의 주소를 알고있따 : a변수에 접근하겠다
float* pb = &b;
#include <stdio.h>
int main()
{
int a = 10; //주소는 컴파일러가 그때그때 편한곳애다가
int* pa = &a;
printf("a : %d\n",a); // 직접참조
printf("&a : %d\n",&a);
printf("pa : %d\n",pa);
printf("*pa : %d\n",*pa); // 간접참조
return 0;
}
#include <stdio.h>
void f(int a)
{
a=50;
}
void f1(int* pa)
{
//pa : a의 주소
//*pa : a의 값
*pa = 50;
}
int main()
{
int a=10;
printf("before : %d\n",a);
//f(a); // "값"에 의한 호출 call by value
f1(&a);
printf("after : %d\n",a);
return 0;
}
**/
/*
#include <stdio.h>
int myswap(int i, int j)
{
int k;
if(*j<*i)
{
k=*i;
i=j;
*j=k;
}
}
main()
{
int a, b;
scanf("%d %d", &a, &b);
myswap(&a, &b);
printf("%d %d", a, b);
}
*/
/*
#include <stdio.h>
char s1[100];
char mysubstr(char str, int start, int count)
{
for(int i = start; i<start+count; i++)
{
s1[i-start]=*(str+i);
}
return s1;
}
int main()
{
int a, b;
char string[100];
scanf("%s", string);
scanf("%d %d", &a, &b);
printf("%s", mysubstr(string, a, b));
}
*/
/*
#include <stdio.h>
void f(char* n, int a, int b)
{
//
//n[i] = *(n+i)
for(int i=a-1;i<=b-1;i++)
printf("%c",*(n+i));
//printf("%c",*(n+0));
//printf("%c",*(n+1)); // n[1]
//printf("%c",n[i]);
}
int main()
{
char n[100]={};
int a, b;
scanf("%s %d %d", n, &a, &b);
f(n, a, b);
return 0;
}
*/
/*
#include <stdio.h>
int main()
{
char n[15];
int birth[4];
int g;
scanf("%s", n);
birth[3]=n[7]-48;
for(int i=0; i<3; i++)
{
birth[i]=(((n[i*2]-48)*10)+n[i*2+1]-48);
}
if(birth[3]==1||birth[3]==3)
{
g='M';
}
else
{
g='F';
}
printf("19%02d/%02d/%02d %c\n", birth[0], birth[1], birth[2], g);
return 0;
}
*/
0
0
1
hyc0514
2024년 3월 14일
In 소스 코드 제출
/*
#include <stdio.h>
int main()
{
double a, b, n;
int i;
double s[5], sum=0;
for(i=0; i<5; i++)
{
scanf("%lf %lf", &a, &b);
s[i]=b-a;
if(s[i]<=1)
{
s[i]=0;
}
else if(1<s[i]&&s[i]<=5)
{
s[i]=s[i]-1;
}
else
{
s[i]=s[i]-(s[i]-4);
}
sum=sum+s[i];
}
n=sum*2*5000;
if(sum>=15)
{
n=n*0.95;
}
else if(sum<=5)
{
n=n*1.05;
}
printf("%d", (int)n);
}
*/
/*
#include <stdio.h>
int a, b, c[100010], s[100010], max=-1000000, i, j;
int main()
{
scanf("%d %d",&a, &b);
for(i=1; i<=a; i++)
{
scanf("%d", &s[i]);
}
for (i=1; i<=a-b+1; i++)
{
for (j=i; j<=i+b-1; j++)
{
c[i]+=s[j];
}
}
for (i=1; i<=a-b+1; i++)
{
if (max<c[i])
max=c[i];
}
printf("%d", max);
return 0;
}
*/
/*
구조체 (struct) : 여러 자료형의 묶음을 한 자료형으로 사용하고 싶을때
학생 100명의 국어,영어,수학 점수와 최종 등급을 관리
typedef struct{
int ko, en, ma;
char grade;
}student;
int main()
{
// int ko[100];
// int en[100];
// int ma[100];
// char grade[100];
student arr[100]; //arr[0] ~ arr[99]
for(int i=0;i<100;i++)
{
scanf("%d",&arr[i].ko);
}
return 0;
}
*/
/*
#include <stdio.h>
typedef struct
{
int score;
int n1;
int n2;
}S;
typedef struct
{
int rank;
}R;
int compare(const void a, const void b)
{
if(*(int*)a>*(int*)b)
{
return -1;
}
if(*(int*)a<*(int*)b){
return 1;
}
else
return 0;
}
int main()
{
int i,j,n;
S a[1001];
R b[1001];
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d %d %d",&a[i].n1,&a[i].n2,&a[i].score);
b[i].rank=1;
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(a[i].score<a[j].score)
{
b[i].rank++;
}
}
}
qsort(a,n,sizeof(a[0]),compare);
if(a[0].n1!=a[1].n1)
{
for(i=0;i<3;i++)
{
printf("%d %d\n",a[i].n1,a[i].n2);
}
}
else
{
for(i=0;i<2;i++)
{
printf("%d %d\n",a[i].n1,a[i].n2);
}
for(i=2;i<n;i++)
{
if(a[0].n1!=a[i].n1)
{
printf("%d %d\n",a[i].n1,a[i].n2);
break;
}
}
}
}
*/
/*
#include <stdio.h>
char ch[101][11];
int sum1[100];
int sum2[100];
int main()
{
int n;
int su;
int hap;
int a, b;
int a1, b1;
int limit=0;
int limit2=0;
int max=0;
scanf("%d", &n);
for(int i=0; i<n; i++)
{
scanf("%s %d %d %d", &ch[i], &su, &sum1[i], &sum2[i]);
if(max<su)
{
max=su;
hap=i;
}
}
a=sum1[hap];
b=sum2[hap];
for(int i=0; i<n; i++)
{
for(int j=i+1; j<n; j++)
{
if(sum1[i]<sum1[j])
{
int imsi=sum1[i];
sum1[i]=sum1[j];
sum1[j]=imsi;
}
if(sum2[i]<sum2[j])
{
int imsi=sum2[i];
sum2[i]=sum2[j];
sum2[j]=imsi;
}
}
}
for(int i=0; i<n; i++)
{
if(sum1[i]==a&&limit==0)
{
a1=i;
limit=1;
}
if(sum2[i]==b&&limit2==0)
{
b1=i;
limit2=1;
}
if(limit==1&&limit2==1)
break;
}
printf("%s %d %d", ch[hap], a1+1, b1+1);
return 0;
}
*/
0
0
1
hyc0514
2024년 3월 13일
In 소스 코드 제출
/*
#include <stdio.h>
int a[15][15]={};
int f(int k, int n)
{
if(k==0)
{
return n;
}
else if(n==0)
{
return 0;
}
if(a[k][n]!=0)
{
return a[k][n];
}
return a[k][n]=(f(k, n-1)+f(k-1, n));
}
int main()
{
int k, n;
while(scanf("%d %d", &k, &n)!=EOF)
printf("%d\n", f(k, n));
return 0;
}
*/
/*
#include <stdio.h>
long long int f(long long int k, int t)
{
if(t==0)
{
if(k%10==0)
{
return f(k/10, 0);
}
return f(k, 1);
}
if(k<10)
return k%10;
printf("%lld", k%10);
f(k/10, 1);
}
int p(long long int n)
{
int a=n%10;
if(n<=1)
return a;
return a+p((long long int)(n/10));
}
int main()
{
int n;
scanf("%d", &n);
printf("%lld\n", f(n, 0));
printf("%d", p(n));
return 0;
}
*/
/*
#include <stdio.h>
int f(int n)
{
if(n<1)
return 0;
f(n/2);
printf("%d", n%2);
}
int main()
{
int n;
scanf("%d", &n);
printf("2 ");
f(n);
printf("\n%d %o\n", 8, n);
printf("%d %X", 16, n);
}
*/
0
0
1
hyc0514
2024년 3월 07일
In 소스 코드 제출
/*
#include <stdio.h>
long long int f(int n, int k)
{
long long int a;
if(k==0)
{
return 1;
}
a=f(n, k/2);
if(k%2==0)
{
return a*a;
}
else
{
return a*a*n;
}
}
int main()
{
int n, k;
scanf("%d %d", &n, &k);
printf("%lld", f(n, k));
return 0;
}
*/
/*
#include <stdio.h>
long long int n;
long long int f(long long int k, int t)
{
if(t==0)
{
if(k%10==0)
{
return f(k/10, 0);
}
return f(k, 1);
}
if(k<10)
return k%10;
printf("%lld", k%10);
f(k/10, 1);
}
int main()
{
scanf("%lld", &n);
if(n==0)
printf("0");
else
printf("%lld", f(n, 0));
return 0;
}
*/
#include <stdio.h>
long long int a[15][15]={};
int i;
int f(int k, int n)
{
if(k==0)
return n;
for(i=1; i<=k; i++)
{
a[k][n]+=f(k-1, i);
}
return a[k][n];
}
int main()
{
int k, n;
while(scanf("%d %d", &k, &n)!=EOF)
printf("%d\n", f(k, n));
return 0;
}
0
0
1
hyc0514
2024년 3월 06일
In 소스 코드 제출
/*
#include <stdio.h>
void s(int b)
{
printf("*");
if(b>1)
{
s(b-1);
}
else
return 0;
}
void f(int n)
{
if(n>0)
{
s(n);
printf("\n");
f(n-1);
}
else
return 0;
}
int main()
{
int a;
scanf("%d",&a);
f(a);
}
*/
/*
#include <stdio.h>
int f(int n)
{
if(n==1)
{
return 1;
}
if(n%2==1)
{
return 1 + f(3*n+1);
}
else
{
return 1 + f(n/2);
}
}
int main()
{
int n;
scanf("%d", &n);
printf("%d",f(n));
return 0;
}
f(5)
f(4) -> f(3) + f(2)
f(3)
*/
/*
#include <stdio.h>
int a[201]={0, 1, 1};
int f(int k)
{
if(a[k]!=0) return a[k];
if(k<=2) return 1;
else return a[k] = (f(k-1)+f(k-2))%10009;
}
int main()
{
int n;
scanf("%d", &n);
printf("%d",f(n));
return 0;
}
*/
//3702
/*
#include <stdio.h>
int a[51][51]={};
int f(int r, int c)
{
if(r==1||c==1)
{
return 1;
}
if(a[r][c]!=0)
{
return a[r][c];
}
return a[r][c]=(f(r-1, c)+f(r, c-1))%100000000;
}
int main()
{
int r, c;
scanf("%d %d", &r, &c);
printf("%d", f(r, c));
}
*/
0
0
1
hyc0514
더보기
bottom of page