top of page

게시판 게시물

jianC
2023년 4월 27일
In 소스 코드 제출
/* #include <stdio.h> #include <string.h> int main() { int arr[10001] = {}; char a, str[10001] = {}; for(int i = 0; i < 10; i++){ scanf("%c", &a); arr[a] = i; } for(int i = 0; i < 3; i++){ scanf("%s",str); for(int j = 0; str[j] != 0; j++){ printf("%d", arr[str[j]]); } printf(" "); } } #include <stdio.h> #include <string.h> int main() { int k, s; char str[21] = {}, rstr[21] = {}; scanf("%d ", &k); gets(str); for(int i = 1; str[i-1] != NULL; i++){ s = 3*i + k; rstr[i - 1] = str[i - 1] - s; if(rstr[i - 1] < 'A') rstr[i - 1] += 26; } for(int i = 0; i < strlen(str); i++){ printf("%c", rstr[i]); } } #include <stdio.h> int main() { int a=0, b=0, c, cnt=0, temp; for(int i=0;i<10;i++){ scanf("%d",&c); if(a==c){ cnt++; temp = b; b = a; a = temp; } else if(b==c){ cnt++; } else{ a=b; b=c; } //printf("%d %d \n", a, b); } printf("%d", cnt); return 0; } */ #include <stdio.h> int main() { int n, arr[100001] = {}, memo[100001] = {}, sum = 0; scanf("%d", &n); for(int i = 0; i < n; i++) scanf("%d", &arr[i]); for(int i = 0; i < n; i++){ for(int j = i; j < n; j++){ if(arr[j+1] < arr[i] && arr[j+1] != 0){ memo[i]++; }else break; } } for(int i = 0; i < n; i++){ // printf("%d ", memo[i]); sum += memo[i]; } printf("%d", sum); }
0
0
2
jianC
2023년 4월 20일
In 소스 코드 제출
/* #include <stdio.h> int stack[100001] = {}, top=-1; void push(int a) { stack[++top] = a; } int pop() { if(top != -1) return stack[top--]; } int main() { int n, arr[100001] = {}, memo[100001] = {}, sum = 0; scanf("%d", &n); for(int i = 0; i < n; i++){ scanf("%d", &arr[i]); } for(int i = 0; i < n; i++){ } // for(int i = 0; i < n; i++){ // for(int j = i; j < n; j++){ // if(arr[j+1] < arr[i] && arr[j+1] != 0){ // memo[i]++; // }else break; // } // } for(int i = 0; i < n; i++){ sum += memo[i]; } printf("\n%d", sum); } #include <stdio.h> int main() { int n, m, arr[1000001] = {}, a, b, save[1000001] = {}, memo[100001] = {}; scanf("%d %d", &n, &m); for(int i = 1; i <= n; i++){ scanf("%d", &arr[i]); memo[i] = arr[i] + memo[i-1]; } for(int i = 1; i <= m; i++){ scanf("%d %d", &a, &b); save[i] = memo[b] - memo[a-1]; } for(int i = 1; i <= m; i++){ printf("%d\n", save[i]); } } */ #include <stdio.h> int main() { int a; scanf("%d", &a); for(int i = 2; a != 1; i++){ for(; ;){ if(a % i == 0) a /= i; else break; printf("%d ", i); } } }
0
0
2
jianC
2023년 4월 13일
In 소스 코드 제출
/* #include <stdio.h> int main() { int a, b, c; for(a = 1; a <= 9; a++) for(b = 0; b <= 9; b++) for(c = 1; c <= 9; c++) if(90*a + 9*b == 10*c) printf("%d%d%d-%d%d=%d%d\n", a, b, c, a, b, c, c); } #include <stdio.h> int main() { int a, b, c; scanf("%d", &a); } a*a = c*c - b*b; a*a = (c-b)*(c+b) #include <stdio.h> #include <string.h> int main() { int sum = 0, temp = 0, n; char str[10001]; scanf("%d ", &n); for(int j = 0; j < n; j++) { gets(str); for(int i = 0; str[i] != NULL; i++){ if(str[i] >= '1' && str[i] <= '9'){ if(sum == 0) sum += str[i]-'0'; else sum = 10 * sum + str[i] - '0'; } } temp += sum; sum = 0; } printf("%.2lf", (double)temp/n); } #include <stdio.h> int main() { int n, countb = 0, count = 0; scanf("%d ", &n); char str[10001] = {}; for(int i = 0; i < n; i++){ gets(str); countb = 0; for(int j = 0; str[j] != NULL; j++){ if(str[j] >= '1' && str[j] <= '9') countb = 1; if(countb == 1) if(str[j] == ',') count++; } } printf("%.2lf", (double)count/n); } #include <stdio.h> long long int rec(int n, int k) { if(k == 0) return 1; long long int x = rec(n,k/2)%1000000007; long long int x2 =x*x%1000000007; if(k%2==0) { return x2; } else { return x2*n%1000000007; } } int main() { int n, k; scanf("%d%d", &n, &k); printf("%lld", rec(n, k)); } */
0
0
0
jianC
2023년 4월 06일
In 소스 코드 제출
/* #include <stdio.h> int arr[1005][1005] = {}; int sqr(int x, int y, int w, int h, int i) { for(int k = y; k < y+h; k++) for(int j = x; j < x+w; j++) arr[k][j] = i; } int main() { int n, x, y, w, h; scanf("%d", &n); for(int i = 1; i <= n; i++){ scanf("%d %d %d %d", &x, &y, &w, &h); sqr(x, y, w, h, i); } int memo[101] = {}; for(int i = 0; i <= 1001; i++) for(int j = 0; j <= 1001; j++) if(arr[i][j] != 0) memo[arr[i][j]]++; for(int i = 1; i <= n; i++) printf("%d\n", memo[i]); } #include <stdio.h> int main() { int n, k, s, y, arr[10][5] = {}, b = 0; scanf("%d %d", &n, &k); for(int i = 0; i < n; i++){ scanf("%d %d", &s, &y); arr[y][s]++; } for(int i = 1; i <= 6; i++){ for(int j = 0; j < 2; j++){ if((float)arr[i][j]/k == (int)arr[i][j]/k) b += arr[i][j]/k; else b += arr[i][j]/k + 1; } } printf("%d", b); } #include <stdio.h> int main() { int S, O, T; for(T = 1; T <= 9; T++) for(S = 1; S <= 9; S++) for(O = 0; O <= 9; O++) if(100*T + 9*O - 20*S == 0) printf("%d%d+%d%d=%d%d%d\n", S, O, S, O, T, O, O); } */ #include <stdio.h> int main() { int a, b, c, d, e = 0; scanf("%d %d", &a, &b); for(;a >= b;){ c = a / b; d = a % b; a = c + d; e += c; } printf("%d", e); }
0
0
1
jianC
2023년 3월 23일
In 소스 코드 제출
/* #include <stdio.h> int main() { int n, arr[100001] = {}, sum = 0, memo[100001] = {}, max = -200, giveup = 0; scanf("%d", &n); for(int i = 1; i <= n;i++){ scanf("%d", &arr[i]); if(arr[i] > 0){ giveup++; } } if(giveup == 0){ for(int i = 1; i <= n; i++){ if(max < arr[i]) max = arr[i]; } printf("%d", max); return 0; } max = -1; for(int i = 1; i <= n; i++){ memo[i] = arr[i] + memo[i-1]; if( memo[i] < 0 ){ memo[i] = 0; } } for(int i = 1; i <= n; i++) { if(max < memo[i]) max = memo[i]; } printf("%d", max); } #include <stdio.h> int main() { int n, giveup=0; double arr[10005] = {}, memo[10005] = {}, max = -1; memo[0] = 1; scanf("%d", &n); for(int i = 1; i <= n; i++){ scanf("%lf", &arr[i]); if(arr[i] >= 1) giveup++; } if(giveup == 0){ for(int i = 1; i <= n; i++){ if(arr[i] > max){ max = arr[i]; } } printf("%0.3lf", max); return 0; } for(int i = 1; i <= n; i++){ memo[i] = arr[i] * memo[i-1]; if(memo[i] < 1) memo[i] = 1; } for(int i = 1; i <= n; i++){ if(max < memo[i]) max = memo[i]; } printf("%0.3lf ", max); } #include <stdio.h> int main() { int n, mA, mB; scanf("%d", &n); mA = n*1234; mB = n*56789; mA = mA + mB/100000; printf("%d", mA); printf("%d", mB%100000); } #include <stdio.h> int main() { int a, b, sum = 0; scanf("%d %d", &a, &b); for(int i = a; i <= b; i++){ if(i%3 == 0 && i%4 == 0)sum = sum; else if(i%3 == 0) sum = sum + i; else if(i%4 == 0) sum = sum - i; } printf("%d", sum); } #include <stdio.h> int l = 0; void rec(int n) { l++; if(n==1) return ; if(n%2 == 1) rec(3*n + 1); else rec(n/2); } int main() { int n; scanf("%d", &n); rec(n); printf("%d", l); } #include <stdio.h> int main() { int a, b, arr[1000001] = {}; scanf("%d %d", &a, &b); for(int i = 2; i <= b; i++){ if(arr[i]==0){ for(int j = i+i; j <= b; j+=i){ arr[j]=1; } } } for(int i = a; i <= b; i++){ if(arr[i] == 0) printf("%d ", i); } return 0; } */ #include <stdio.h> #include <string.h> int main() { char str[101] = {}; gets(str); for(int i = 0; str[i] != NULL; i++){ if(str[i] == ' ') i = i; else if(str[i] == ',') printf(" "); else if(str[i] == ';') printf(" \n"); else printf("%c", str[i]); } printf(" "); }
0
0
0
jianC
2023년 3월 16일
In 소스 코드 제출
/* #include <stdio.h> #include <math.h> int arr[100000] = {}; void swap(int a, int b) { int temp; temp = arr[a]; arr[a] = arr[b]; arr[b] = temp; } void qs(int s, int e) { if(s>=e) return; int pivot = s; int left = s, right = e+1; do{ do{ left++; }while(arr[left] < arr[pivot]); do{ right--; }while(arr[right] > arr[pivot]); if(left < right){ swap(left, right); } }while(left < right); swap(pivot, right); qs(s, right-1); qs(right+1, e); } int main() { int a, b, j = 0; scanf("%d %d", &a, &b); for(int i = 1; i<=(int)sqrt(a); i++){ if(a%i == 0){ arr[j++] = i; arr[j++] = a/i; } } for(int i = 1; i<=(int)sqrt(b); i++){ if(b%i==0){ arr[j++] = i; arr[j++] = b/i; } } qs(0, j-1); printf("%d ",arr[0]); for(int i = 1; i < j; i++){ if(arr[i] != arr[i-1]) printf("%d ", arr[i]); } } #include <stdio.h> int main() { int a, b, l; scanf("%d %d", &a, &b); if(a - b == 0){ printf("0"); return 0; } else if(a - b > 0) l = a-b; else l = -a+b; for(int i = 1;l != 0; i++){ if( l < 0 ) l = -1 * l; else l = 1 * l; if(l == 1) l -= 1; else if(l == 5) l -= 5; else if(l == 10) l -= 10; else if(l >= 8) l -= 10; else if(l > 5) l -= 5; else if(3 < l && l < 5) l -= 5; else if(l <= 3) l -= 1; if( l == 0 ){ printf("%d", i); return 0; } } } #include <stdio.h> #include <math.h> int main() { int a, arr[100000] = {}, j = 0; long long int sum = 0; scanf("%d", &a); for(int i = 1; i<=(int)sqrt(a); i++){ if(a%i == 0){ arr[j++] = i; if(i != a/i) arr[j++] = a/i; } } for(int i = 1; i <= j; i++){ sum = sum + arr[i]; } printf("%lld", sum+1); } memo[i] : 어딘가부터 arr[i]까지의 합 중에 최댓값 8 2 -6 4 5 -2 6 2 -1 2 -4 4 9 7 13 15 14 */ #include <stdio.h> int main() { int n, arr[100001] = {}, sum = 0, memo[100001] = {}, max = -2000000000, giveup = 0; scanf("%d", &n); for(int i = 0; i < n;i++){ scanf("%d", &arr[i]); if(arr[i] > 0){ giveup++; } } if(giveup == 0){ for(int i = 0; i < n; i++){ if(max < arr[i]) max = arr[i]; } printf("%d", max); return 0; } max = -1; for(int i = 1; i <= n; i++){ memo[i] = arr[i] + memo[i-1]; if( memo[i] < 0 ){ memo[i] = 0; } } for(int i = 0; i < n; i++) { if(max < memo[i]) max = memo[i]; } printf("%d", max); }
0
0
1
jianC
2023년 3월 16일
In 소스 코드 제출
#include <stdio.h> int main() { int n, arr[100001] = {}, sum = 0, memo[100001] = {}, max = -2000000000, giveup = 0; scanf("%d", &n); for(int i = 0; i < n;i++){ scanf("%d", &arr[i]); if(arr[i] > 0){ giveup++; } } if(giveup == 0){ for(int i = 0; i < n; i++){ if(max < arr[i]) max = arr[i]; } printf("%d", max); return 0; } max = -1; for(int i = 1; i <= n; i++){ memo[i] = arr[i] + memo[i-1]; if( memo[i] < 0 ){ memo[i] = 0; } } for(int i = 0; i < n; i++) { if(max < memo[i]) max = memo[i]; } printf("%d", max); }
0
0
1
jianC
2023년 3월 09일
In 소스 코드 제출
#include <stdio.h> int main() { int arr[100000] = {}, a, b, j = 0, temp; scanf("%d %d", &a, &b); for(int i = 1; i <= a; i++){ if(a%i==0){ arr[j] = i; j++; } } for(int i = 1; i <= b; i++){ if(b%i==0){ arr[j] = i; j++; } } for(int k = 1; k < j; k++){ for(int i = 1; i < j - 1 - k; i++){ if(arr[i] > arr[i+1]) { temp = arr[i]; arr[i] = arr[i+1]; arr[i+1] = temp; } } } printf("%d ",arr[0]); for(int i = 1; i < j; i++){ if(arr[i] != arr[i-1]) printf("%d ", arr[i]); } }
0
0
2
jianC
2023년 2월 23일
In 소스 코드 제출
//#include <stdio.h> //int arr[1001][1001] = {}, queue[2][1000001], m, n, start, front = -1; rear = -1, num = 0; //int x, y; // //void enq(int i, int j) //{ // if(i < 0 || j < 0 || i >= m || j >= n || arr[i][j]!=0) return; // rear++; // queue[0][rear]=i; // queue[1][rear]=j; // arr[i][j] = 1; // //} // //void deq() //{ // front++; // x = queue[0][front]; // y = queue[1][front]; //} // //void bfs(int i, int j) //{ // enq(i+1,j); // enq(i-1, j); // enq(i, j+1); // enq(i, j-1); //} // //int main() //{ // int p = 0; // scanf("%d %d", &m, &n); // for(int j = 0; j < n; j++){ // for(int i = 0; i < m; i++){ // scanf("%d", &arr[i][j]); // if(arr[i][j] == 0){ // p++; // } // else if(arr[i][j]==1){ // rear++; // queue[0][rear]=i; // queue[1][rear]=j; // arr[i][j] = 1; // } // } // } // if(p == 0){ // printf("0"); // return 0; // } // // while(front!=rear) // { // int goal = rear; // for(;front!=goal;) // { // deq(); // bfs(x,y); // } // num++; // } // // for(int j = 0; j < n; j++){ // for(int i = 0; i < m; i++){ // if(arr[i][j] == 0){ // printf("-1"); // return 0; // } // } // } // // printf("%d", num-1); //} /* rec(n) : 리턴 >> 1부터 n까지의 합 리턴 >> 1 + 2+ 3 + ... +n-1 + n 리턴 >> 1부터 n-1까지의합 + n 리턴 >> rec(n-1) + n #include <stdio.h> int rec(int n) { if(n==1) return 1; return rec(n-1)+n; } int main() { int n; scanf("%d", &n); printf("%d", rec(n)); } #include <stdio.h> int c = 0, a; long long int rec(int n, int k) { if(c>=k) return 1; c++; return rec(n, k)*n; } int main() { int n, k; scanf("%d %d", &n, &k); if(n == 0){ printf("1"); return 0; } else if(n == 1){ printf("1"); return 0; } else if(n == -1){ if(k%2 == 0) printf("1"); else if(k%2 == 1) printf("-1"); return 0; } a = n; printf("%lld", rec(n, k)); } */ #include <stdio.h> int rec(int n, int k) { if(n == 0) return; rec(n/k, k); printf("%d", n%k); } int main() { int n, k; scanf("%d %d", &n, &k); rec(n, k); }
0
0
2
jianC
2023년 2월 16일
In 소스 코드 제출
/* #include <stdio.h> int arr[101][101] = {}, v[101]={}; int queue[100000] = {},front = -1, rear = -1, n, num = 0; int deq() { return queue[++front]; } void enq(int i) { v[i]=1; rear++; queue[rear]=i; } void bfs(int i) { // x와 연결되어있으면서 방문하지 않은 노드를 enq for(int j = 1; j <= n; j++) { if(arr[i][j]==1&&v[j] != 1) { enq(j); num++; } } } int main() { int m, a, b; scanf("%d", &n); scanf("%d", &m); for(int i = 0; i < m; i++){ scanf("%d %d", &a, &b); arr[a][b] = 1; arr[b][a] = 1; } enq(1); while(front!=rear) { int x = deq(); bfs(x); } printf("%d", num); } */ #include <stdio.h> int arr[1001][1001] = {}, queue[2][10001], m, n, start, front = -1; rear = -1, num = 0; int x, y; void enq(int i, int j) { rear++; queue[0][rear]=i; queue[1][rear]=j; } void deq() { front++; x = queue[0][front]; y = queue[1][front]; } void bfs(int i, int j) { if(arr[i+1][j]==1) enq(i+1,j); if(arr[i-1][j]==1) enq(i-1, j); if(arr[i][j+1]==1) enq(i, j+1); if(arr[i][j-1]==1) enq(i, j-1); start = rear; } int main() { int p = 0; scanf("%d %d", &m, &n); for(int i = 0; i < n; i++){ for(int j = 0; j < m; j++){ scanf("%d", &arr[i][j]); if(arr[i][j] == 0){ p++; } else if(arr[i][j]==1){ enq(i,j); } } } if(p == 0){ printf("0"); return 0; } while(front!=rear) { deq(); bfs(x,y); num++; } printf("%d", num); }
0
0
3
jianC
2023년 2월 02일
In 소스 코드 제출
/*#include <stdio.h> int main() { int arrA[1000002] = {}, arrB[100002] = {}; int n, m, tempa[1000002] = {}; scanf("%d", &n); for(int i = 0; i < n; i++){ scanf("%d", &arrA[i]); tempa[arrA[i]] = i + 1; } scanf("%d", &m); for(int i = 0; i < m; i++){ scanf("%d", &arrB[i]); } for(int i = 0; i < m; i++){ if(tempa[arrB[i]] != 0) printf("%d ", tempa[arrB[i]]); else printf("-1 "); } } #include <stdio.h> int arr[1000001] = {}; int bs(int s, int e, int k){ int mid = (s+e)/2; if(s > e){ return -2; } if(arr[mid] > k){ bs(s, mid-1, k); } else if(arr[mid] < k){ bs(mid+1, e, k); } else{ return mid; } } int main() { int n, m, k; scanf("%d", &n); for(int i = 0; i < n; i++){ scanf("%d", &arr[i]); } scanf("%d", &m); for(int i = 0; i < m; i++){ scanf("%d", &k); printf("%d ", bs(0, n-1, k) + 1); } } 3004 : 데이터 재정렬 0 1 2 3 4 50 23 54 24 123 0 1 2 3 4 23 24 50 54 123 2 0 3 1 4 #include <stdio.h> int bs(int s, int e, int k) { } int main() { int n; scanf("") } #include <stdio.h> int arr[101][101] = {}, v[101] = {}, n; int num=0; void dfs(int node) { v[node]=1; for(int i = 1; i <= n; i++) { if(arr[node][i]==1 && v[i]==0) { dfs(i); num++; } } } int main() { int m, a, b; scanf("%d", &n); scanf("%d", &m); for(int i = 0; i < m; i++){ scanf("%d %d", &a, &b); arr[a][b] = 1; arr[b][a] = 1; } dfs(1); printf("%d",num); } #include <stdio.h> int arr[26][26] = {},a=0, num[1001] = {}; void dfs(int i, int j) { arr[i][j] = 0; num[a]++; if(arr[i+1][j] == 1) dfs(i + 1, j); if(arr[i-1][j] == 1) dfs(i - 1, j); if(arr[i][j+1] == 1) dfs(i, j+1); if(arr[i][j-1] == 1) dfs(i, j-1); } int main() { int n; scanf("%d", &n); for(int i = 0; i < n; i++){ for(int j = 0; j < n; j++){ scanf("%1d", &arr[i][j]); } } for(int i = 0; i < n; i++){ for(int j = 0; j < n; j++){ if(arr[i][j] == 1){ dfs(i, j); a++; } } } printf("%d\n", a); int temp; for(int i = 0; i < a - 1; i++){ for(int j = 0; j < a - 1 - i; j++){ if(num[j] > num[j+1]){ temp = num[j]; num[j] = num[j+1]; num[j+1] = temp; } } } for(int i = 0; i < a; i++){ printf("%d\n", num[i]); } } #include <stdio.h> int arr[8][8] = {}, n = 0, cnt=0; void dfs(int i, int j, int a) { if(i < 0 || j < 0 || i >= 7 || j >= 7|| arr[i][j]!=a) return; arr[i][j] = 0; cnt++; //if(arr[i+1][j] == a) dfs(i+1, j, a); //if(arr[i-1][j] == a) dfs(i-1, j, a); //if(arr[i][j-1] == a) dfs(i, j-1, a); //if(arr[i][j+1] == a) dfs(i, j+1, a); } int main() { for(int i = 0; i < 7; i++){ for(int j = 0; j < 7; j++){ scanf("%d", &arr[i][j]); } } for(int i = 0; i < 7; i++){ for(int j = 0; j < 7; j++){ if(arr[i][j] != 0){ cnt=0; dfs(i, j, arr[i][j]); if(cnt>=3) n++; } } } printf("%d",n); } */ #include <stdio.h> char arr[101][101] = {}; int n, m; void dfs(int i, int j) { if(i < 0 || j < 0 || i >= m || j >= n || arr[i][j] != 'L') return; arr[i][j] = '.'; dfs(i+1, j); dfs(i-1, j); dfs(i, j+1); dfs(i, j-1); dfs(i-1, j-1); dfs(i-1, j+1); dfs(i+1, j+1); dfs(i+1, j-1); } int main() { int a = 0; scanf("%d %d", &n, &m); for(int i = 0; i < m; i++){ for(int j = 0; j < n; j++){ scanf(" %c", &arr[i][j]); } } for(int i = 0; i < m; i++){ for(int j = 0; j < n; j++){ if(arr[i][j] == 'L'){ dfs(i, j); a++; } } } printf("%d", a); }
0
0
1
jianC
2023년 1월 26일
In 소스 코드 제출
/* #include <stdio.h> #include <string.h> typedef struct{ char str[101]; int deadline; }schd; int main() { schd arr[101], temp; int n, y, m, d; scanf("%d", &n); for(int i = 0; i < n; i++){ scanf("%s %d %d %d", arr[i].str, &y, &m, &d); arr[i].deadline = y*10000 + m*100 + d; } for(int i = 0; i < n + 1; i++){ for(int j = 0; j < n - 1 - i; j++){ if(arr[j].deadline > arr[j+1].deadline){ temp = arr[j]; arr[j] = arr[j + 1]; arr[j+1] = temp; } else if(arr[j].deadline == arr[j+1].deadline){ if(strcmp(arr[j].str, arr[j+1].str) > 0){ temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } } } for(int i = 0; i < n; i++){ printf("%s\n", arr[i].str); } } */ /* #include <stdio.h> typedef struct{ int n, pos; }tst; int main() { tst arr[50001], opos[50001]; int a, temp; scanf("%d", &a); for(int i = 0; i < a; i++){ scanf("%d", &arr[i].n); arr[i].pos = i; opos[i] = arr[i]; } for(int i = 0; i < a - 1; i++){ for(int j = 0; j < a - 1 - i; j++){ if(arr[j].n > arr[j+1].n){ temp = arr[j].n; arr[j].n = arr[j+1].n; arr[j+1].n = temp; } } } for(int i = 0; i < a; i++){ printf("%d ", arr[i].pos); } } 이분탐색 == 이진탐색 == binary search : 정렬이 되어있는 데이터셋 (배열)에서 원하는 데이터를 찾기 1 5 7 8 10 13 15 K : 5 bs(1,7,5) -> bs(1,3(mid-1),5) -> int bs(int s, int e, int k) // a[s] ~ a[e]에서 k의 위치를 리턴 (없다면 -1리턴) #include <stdio.h> int arr[1000001] = {}; int bs(int s, int e, int k){ int mid=(e+s)/2; if(s>e) return -2; if(arr[mid]==k) return mid; else if(arr[mid]<k) bs(mid+1, e, k); else bs(s, mid-1, k); } int main() { int n, k; scanf("%d %d", &n, &k); for(int i = 0; i < n; i++){ scanf("%d", &arr[i]); } printf("%d", bs(1, n, k) + 1); } */ #include <stdio.h> int arr[1000001] = {}; int bs(int s, int e, int k){ int mid = (s+e)/2; if(s>e) return; if(arr[mid]<k) } int main() { int n, k, arr[100001] = {}; scanf("%d %d", &n, &k); for(int i = 1; i <= n; i++){ scanf("%d", &arr[i]); } printf("%d", bs(1, n, k)); }
0
0
1
jianC
2023년 1월 19일
In 소스 코드 제출
/* #include <stdio.h> typedef struct{ int a,b; }tds; int main() { tds arr[101], temp; int n; scanf("%d", &n); for(int i = 1; i <= n; i++){ scanf("%d %d", &arr[i].a, &arr[i].b); } for(int i = 1; i <= n; i++){ for(int j = 1; j < n + 1 - i; j++){ if(arr[j].a > arr[j + 1].a){ temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } } for(int i = 1; i <= n; i++){ printf("%d %d\n", arr[i].a, arr[i].b); } } */ /* #include <stdio.h> typedef struct{ int a, b, c; char name[11]; }std; int main() { int n, x=1, y=1; std arr[101], temp; scanf("%d", &n); for(int i = 0; i < n; i++){ scanf("%s%d%d%d",arr[i].name,&arr[i].a,&arr[i].b,&arr[i].c); } for(int i = 0; i < n-1; i++){ for(int j = 0; j < n - 1 - i; j++){ if(arr[j].a < arr[j+1].a){ temp = arr[j]; arr[j] = arr[j + 1]; arr[j+1] = temp; } } } for(int i = 0; i < n; i++){ if(arr[0].b<arr[i].b) x++; if(arr[0].c<arr[i].c) y++; } printf("%s %d %d", arr[0].name, x, y); } 4531 그냥정렬 1420 3017 3019 구조체정렬 3014 ( 기존정렬x, 메모이제이션이용한 정렬) 1452 (퀵정렬) #include <stdio.h> int arr[100001] = {}; void swap(int a, int b) { int temp; temp = arr[a]; arr[a] = arr[b]; arr[b] = temp; } void qs(int s, int e) { if(s>=e) return ; int pivot = s; int left=s, right=e+1; do{ do{ left++; }while(arr[left]<arr[pivot]); do{ right--; }while(arr[right]>arr[pivot]); if(left<right){ swap(left,right); } }while(left<right); swap(pivot,right); qs(s,right-1); qs(right+1,e); } int main() { int n; scanf("%d", &n); for(int i = 0; i < n; i++){ scanf("%d", &arr[i]); } qs(0, n-1); for(int i = 0; i < n; i++){ printf("%d\n", arr[i]); } } #include <stdio.h> int main() { int n, arr[100001] = {}, temp; scanf("%d", &n); for(int i = 0; i < n; i++){ scanf("%d", &temp); arr[temp]++; } for(int i = 0; i < 100001; i++){ for(int j = 0; j < arr[i]; j++){ printf("%d ", i); } } } #include <stdio.h> typedef struct{ char name[11]; int p; }std; int main() { std arr[51], temp; int n; scanf("%d", &n); for(int i = 0; i < n; i++){ scanf("%s%d", arr[i].name, &arr[i].p); } for(int i = 0; i < n + 1; i++){ for(int j = 0; j < n - 1 - i; j++){ if(arr[j].p < arr[j+1].p){ temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } } printf("%s", arr[2].name); } */
0
0
0
jianC
2023년 1월 12일
In 소스 코드 제출
/* #include <stdio.h> int main() { int n, x, y, arr[101][101] = {}, size = 0; scanf("%d", &n); for(int i = 0; i < n; i++){ scanf("%d %d", &x, &y); for(int j = y; j < y + 10; j++){ for(int k = x; k < x + 10; k++){ if(arr[j][k] != 4){ arr[j][k] = 4; size++; } } } } printf("%d", size); } #include <stdio.h> typedef struct{ int x1, x2, y1, y2; }rect; int main() { rect A, B; scanf("%d %d %d %d",&A.x1,&A.y1,&A.x2,&A.y2); scanf("%d %d %d %d",&B.x1,&B.y1,&B.x2,&B.y2); if( (A.x1 == B.x2 || A.x2 == B.x1)&& (A.y2 == B.y1 || A.y1 == B.y2) ){ printf("POINT"); } else if( A.x1 > B.x2 || B.x1 > A.x2 || A.y1 > B.y2 || B.y1 > A.y2 ){ printf("NULL"); } else if( A.x1 == B.x2 || A.x2 == B.x1 || A.y1 == B.y2 || A.y2 == B.y1 ){ printf("LINE"); } else{ printf("FACE"); } } #include <stdio.h> int main() { int n, arr[1001], stage = 0, temp, flag = 1; scanf("%d", &n); for(int i = 1; i <= n; i++){ scanf("%d", &arr[i]); } for(int i = 1; i < n; i++){ flag = 1; for(int j = 1; j < n + 1 - i; j++){ if(arr[j] > arr[j+1]){ flag = 0; temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } if(flag == 1){ break; } stage++; } printf("%d", stage); } #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(int j = 1; j < n+1-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 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[min]>a[j]){ 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[10001]; int n, i, j, 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[max]<a[j]){ max = j; } } temp = a[i]; a[i] = a[max]; a[max] = temp; } for(i=1; i<=n; i++) printf("%d\n", a[i]); return 0; } #include <stdio.h> int a[10001]; int n, i, j, temp, key; int main() { scanf("%d", &n); for (i = 1; i <= n; i++) scanf("%d", &a[i]); for (i=2; i<=n; i++) { key=a[i]; for(j = i-1; j >= 1 && key < a[j]; j--) { a[j+1]=a[j]; } a[j+1]=key; } for (i=1; i<=n; i++) printf("%d\n", a[i]); return 0; } */
0
0
2
jianC
2023년 1월 05일
In 소스 코드 제출
/* #include <stdio.h> int top = 0; int main() { char str[100001] = {}; gets(str); int len = strlen(str), a = 0; for(int i = 0; i < len; i++){ if(str[i] == '(' && str[i+1] == '('){ top++; } else if(str[i] == ')'){ top--; a++; } else if(str[i] == '(' && str[i+1] == ')'){ a += top; i++; } } printf("%d", a); } */ /* #include <stdio.h> #define SIZE 10 int stack[SIZE] = {}; int top = -1; void push(int b) { stack[++top] = b; } int pop() { if(top != -1) return stack[top--]; } void view() { printf("stack : \n"); for(int i = 0; i <= top; i++) { printf("%d\n", stack[i]); } printf("\n"); } int main() { int a, b; printf("**********stack***********\n"); while(1){ printf("1. push 2. pop 3. view 4. exit >> "); scanf("%d",&a); if(a==1){ if(top >= SIZE-1){// printf("stack is full.\n"); continue; } printf("push할 데이터를 입력하세요 >> "); scanf("%d",&b); push(b); } else if(a==2){ if(top == -1){// printf("stack is empty.\n"); continue; } printf("pop한 데이터는 %d 입니다.\n",pop()); } else if(a==3){ if(top == -1){ printf("Nothing to view\n"); } else view(); } else if(a==4){ break; } printf("\n"); } } Queue */ /* #include <stdio.h> #define SIZE 5 int queue[SIZE] = {}; int f = 0; int r = 0; void enqueue(int b) { r=(r+1)%SIZE; queue[r] = b; } int dequeue() { f=(f+1)%SIZE; return queue[f]; } void view() { if(f<r) for(int i = f+1; i <= r; i++) printf("%d ", queue[i]); else{ for(int i=f+1;i<SIZE;i++) printf("%d ", queue[i]); for(int i=0;i<=r;i++) printf("%d ", queue[i]); } printf("\n"); } int main() { int a,b; while(1){ printf("Select between these actions : 1. enqueue 2. dequeue 3. view 4. exit >> "); scanf("%d", &a); if(a == 1){ if((r+1)%SIZE == f){ printf("Queue is full\n"); } else{ printf("Enter the number to Enqueue >> "); scanf("%d", &b); enqueue(b); } continue; } else if(a == 2){ if(f == r){ printf("None to be dequeued \n"); } else{ printf("Number dequeued was %d \n", dequeue()); } continue; } else if(a == 3){ if(f == r){ printf("Nothing to be viewed\n"); } else{ view(); } continue; } else if(a == 4){ break; } } } */ #include <stdio.h> int main() { int n, x, y, arr[101][101] = {}; scanf("%d", &n); for(int i = 0; i < n; i++){ scanf("%d %d", &x, &y); arr[y][x] = 4; } for(int i = 0; i < 101; i++){ for(int j = 0; j < 101; j++){ printf("%d", arr[i][j]); } printf("\n"); } }
0
0
2
jianC
2022년 12월 22일
In 소스 코드 제출
/* #include <stdio.h> #include <string.h> int stack[105]={}; int top=-1; //마지막 데이터의 위치 void push(int data){ stack[++top]=data; } int pop(){ if(top!=-1) return stack[top--]; } int main() { char a[101] = {}, b[101] = {}; int aLen, bLen; scanf("%s %s",a, b); aLen = strlen(a); bLen = strlen(b); int i=aLen-1, j=bLen-1; int c=0, x=0,y=0,num; while(i!=-1||j!=-1){ x=0; y=0; if(i!=-1) x=a[i--]-'0'; if(j!=-1) y=b[j--]-'0'; num=x+y+c; push(num%10); c=num/10; } if(c!=0) push(c); while(top!=-1) printf("%d",pop()); } #include <stdio.h> #include <string.h> int top = 0; int main() { char str[50001] = {}; gets(str); int len; len = strlen(str); int counter = 0, counterA = 0; for(int i = 0; str[i] != NULL; i++){ if(str[i] == '('){ top++; } else{ top--; if(top<0){ printf("bad"); return 0; } } } if(top==0) { printf("good"); } else { printf("bad"); } } */ #include <stdio.h> #include <string.h> int top = 0; int main() { char str[100001] = {}; gets(str); int counter = 0; for(int i = 0; str[i] != NULL; i++){ if(str[i] == '('){ counter = 0; } } }
0
0
1
jianC
2022년 11월 24일
In 소스 코드 제출
/* #include <stdio.h> #include<stdbool.h> int stack[201] = {}; int topp = -1; void push(int a) { stack[++topp] = a; } int pop() { if(topp!= -1) stack[topp--] = 0; } int top() { if(topp == -1) return -1; return stack[topp]; } int size() { return topp+1; } bool empty() { if(topp == -1) return true; else return false; } int main() { int n, a=0; char str[50] = {}; scanf("%d\n", &n); for(int i = 0; i < n; i++){ gets(str); if(str[1] == 'u'){ for(int j = 6; str[j] != ' '; j++) a = a*10 + str[j]-'0'; push(a); a=0; } else if(str[0] == 'p'){ pop(); } else if(str[0] == 't'){ printf("%d\n", top()); } else if(str[0] == 's'){ printf("%d\n", size()); } else if(str[0] == 'e'){ if(empty() == 1) printf("true\n"); else printf("false\n"); } } } #include <stdio.h> int stack[201] = {}; int top = -1; void push(int a) { stack[++top] = a; } int pop() { if(top!= -1) return stack[top--]; } int main() { char str[201] = {}; int j; int a = 0; gets(str); for(int i = 0; str[i] != NULL; i++){if(str[i] != ' '){ if(str[i] >= '0' && str[i] <= '9'){ a = a*10 + str[i] - '0'; if(str[i+1]==' '){ push(a); a = 0; } } else{ int x=pop(); int y=pop(); if(str[i] == '*') push(x * y); if(str[i] == '+') push(x + y); if(str[i] == '-') push(y - x); } }} printf("%d", pop()); } */ #include <stdio.h> char stack[50001] = {}; int top = -1; void push(char a) { stack[++top] = a; } int pop() { if(top != -1) return stack[top--]; } int main() { char str[50001] = {}; gets(str); for(int i = 0; str[i] != NULL; i++) push(str[i]); }
0
0
1
jianC
2022년 11월 17일
In 소스 코드 제출
/* #include <stdio.h> typedef struct { int g; char name[11]; }stds; int main() { int m, n, rank[101] = {}, a = 0; stds std[101] = {}; scanf("%d %d", &m, &n); for(int i = 0; i < m; i++){ scanf("%s %d", std[i].name, &std[i].g); } for(int i = 0; i < n; i++){ for(int j = 0; j < m; j++){ if(std[a].g < std[j].g) a = j; if(j == m - 1){ printf("%s\n", std[a].name); std[a].g = 0; a = 0; } } } } 자료구조 스택, 큐 정렬 (퀵정렬) 이진탐색 bfs/dfs Stack : Last In First Out Queue : First In First Out #include <stdio.h> #define SIZE 5 int stack[SIZE]={}; int top=-1; //toq : 마지막 데이터의 위치 void push(int x) { top++; stack[top]=x; } int pop() { if(top!=-1) return stack[top--]; } int main() { push(5); push(4); push(3); while(top!=-1) { printf("%d\n",pop()); } } #include <stdio.h> #define SIZE 101 int stack[SIZE] = {}; int top = -1; void push(int a) { stack[++top] = a; } int pop() { if(top != -1) return stack[top--]; } int main() { char n[101] = {}; gets(n); for(int i = 0; n[i] != NULL; i++){ push(n[i]); } for(int i = 0; n[i] != NULL; i++){ printf("%c", pop()); } } #include <stdio.h> int stack[100001] = {}; int top = -1; void push(int a) { stack[++top] = a; } int pop() { if(top != -1) stack[top--] = 0; } int main() { int n, a; scanf("%d", &n); for(int i = 0; i < n; i++){ scanf("%d", &a); if(a == 0) pop(); else push(a); } a = 0; for(int i = 0; stack[i] != 0; i++){ a += stack[i]; } printf("%d", a); } #include <stdio.h> char stack[201] = {}; int top = -1; void push(char a) { stack[++top] = a; } char pop() { if(top != -1) return stack[top--]; } int main() { char str[201] = {}; int n, i=1, j =-1; scanf("%d\n%s", &n,str); for(int i = n-1; i >= 0; i--){ push(str[i]); } while(top!=-1) { if(top%3==2 && top!=n-1 ) printf(","); printf("%c", pop()); } } */ #include <stdio.h> #include<stdbool.h> int stack[201] = {}; int topp = -1; void push(int a) { stack[++topp] = a; } int pop() { if(topp!= -1) stack[topp--] = 0; } int top() { return topp; } int size() { return topp+1; } bool empty() { if(topp == -1) return true; else return false; } int main() { int n, a; char str[50] = {}; scanf("%d\n", &n); for(int i = 0; i < n; i++){ gets(str); if(str[1] == 'u'){ push(str[6]-'0'); } else if(str[0] == 'p'){ pop(); } else if(str[0] == 't'){ printf("%d", top()); } else if(str[0] == 's'){ printf("%d", size()); } else if(str[0] == 'e'){ printf("%s", empty()); } } }
0
0
2
jianC
2022년 11월 10일
In 소스 코드 제출
/* #include <stdio.h> int main() { char str[51] = {}; gets(str); int h = 0; int db = 0; for(int i = 0; str[i] != NULL; i++) { if(i != 0) { if(str[i-1] == str[i]) { h += 5; } else{ h += 10; } } else{ h += 10; } } printf("%d", h); } #include <stdio.h> int main() { int year, a = 7, b = 9; scanf("%d", &year); for(int i = 1; i <= year; i++) { if(a == 10){ a = 0; } if(b == 12){ b = 0; } a++; b++; } printf("%c%d", b + 'A'- 1, a - 1); } #include <stdio.h> int main() { char str[21] = {}; gets(str); for(int i = 0; str[i] != NULL; i++) { printf("\'%c\'\n", str[i]); } } 포인터 주소를 저장하는 변수 */ /* #include <stdio.h> void f(int* pa) { printf("in f : %d\n",*pa); *pa=50; } int main() { int a=10; printf("before : %d\n",a); //f(a); // call by value f(&a); printf("after : %d\n",a); return 0; } #include <stdio.h> void f(char* str) { *(str+1)=0; //str[1]=0; //printf("in f : %s\n",str); //str[0]='j'; } int main() { char str[50]="hello"; //str == &str[0] //printf("%d",&str[0]); f(str); printf("%s",str); } #include <stdio.h> int x, y; void myswap(int* pa, int* pb) { x = *pa; y = *pb; if(x > y){ *pa = y; *pb = x; } } main() { int a, b; scanf("%d%d", &a, &b); myswap(&a, &b); printf("%d %d", a, b); } #include <stdio.h> char* mysubstr(char* str, int start, int count) { str[start + count] = 0; return &str[start]; } int main() { char str[101] = {}; gets(str); int s, c; scanf("%d %d", &s, &c); printf("%s",mysubstr(str, s, c)); } c언어 문법 (끝) * c언어 자료구조 data structure 1. stack 2. queue 3. tree 4.Sort 5.Search 6.Graph(DFS/BFS) * 새로운 다른 언어 1. Java 2.Python 3. Unity(자료구조) ... 4. 앱인벤터 5. .. #include <stdio.h> int main() { char memo[26]={}; char alpha[26] = {}; char str[101] = {}; gets(str); for(int i = 0; str[i]!=NULL; i++) { memo[str[i]-'a']++; } for(int i = 0; i < 26; i++) printf("%c:%d\n", 'a' + i, memo[i]); } #include <stdio.h> int main() { char strA[101] = {}, strB[101] = {}; int a, b; scanf("%s %s", strA, strB); for(int i = 0; strA[i] != NULL && strB[i] != NULL; i++) { if(strA[i + 1] == NULL){ a = i; } if(strB[i + 1] == NULL){ b = i; } } for(int i = 0; strA[i] != NULL && strB[i] != NULL; i++) { if(a != b){ if(strA[i + 1] == NULL && strB[i + 1] != NULL){ printf("%s %s", strA, strB); break; } else if(strA[i + 1] != NULL && strB[i + 1] == NULL){ printf("%s %s", strB, strA); break; } } else{ if(strA[i] < strB[i]){ printf("%s %s", strA, strB); break; } else if(strB[i] < strA[i]){ printf("%s %s", strB, strA); break; } } } } #include <stdio.h> int main() { int san, sbn, scn; char sA[21] = {}, sB[21] = {}, sC[21] = {}; scanf("%s %s %s", sA, sB, sC); san=strlen(sA); sbn=strlen(sB); scn=strlen(sC); if( sA[san - 1] == sB[0] &&sB[sbn - 1] == sC[0] &&sC[scn - 1] == sA[0]) printf("good"); else printf("bad"); } */
0
0
2
jianC
2022년 11월 03일
In 소스 코드 제출
/* #include <stdio.h> typedef struct { int c;//나라 int n;//번호 int g;//점수 }str; int main() { str arr[101]; int x = 0, y = 0, z = 0, i, n, f; int a, b; scanf("%d", &n); for(i = 0; i < n; i++) { scanf("%d %d %d", &arr[i].c, &arr[i].n, &arr[i].g); } for(i = 0; i < n; i++) { if(arr[x].g <= arr[i].g){ x = i; } } arr[x].g = 0; for(i = 0; i < n; i++){ if(arr[y].g < arr[i].g ){ y = i; } } arr[y].g = 0; a=arr[x].c; b=arr[y].c; if(a==b) { for(i = 0; i < n; i++) { if(arr[i].c == a){ arr[i].g = 0; } } } for(i = 0; i < n; i++){ if(arr[z].g <= arr[i].g){ z = i; } } printf("%d %d\n", arr[x].c, arr[x].n); printf("%d %d\n", arr[y].c, arr[y].n); printf("%d %d\n", arr[z].c, arr[z].n); } string 문자열 == 문자 1차원배열 char str[50]={}; 1. scanf("%s",str); 2. gets(str); 아스키코드 : 각 문자에 부여된 번호 'a' 97 ~ 'z' 122 'A' 65 ~'Z' 90 '0' 48~ '9' 57 ' ' 32 '\0' 0 NULL char c = 'x'; c-('a'-'A') char c = '7'; int num=0; num=c-'0'; #include <stdio.h> #include <string.h> int main() { char str[50]={}; // &str[0] == str //scanf("%s",str); gets(str); for(int i=0; str[i] !=NULL ;i++) { //printf("%d ",str[i]); //printf("%c",str[i]); } // printf("%s",str); } #include <stdio.h> #include <string.h> int main() { char str[31]; gets(str); printf("%s", str); } #include <stdio.h> #include <string.h> int main() { char str[101]; gets(str); for(int i = 0; str[i] != NULL; i++) { if(str[i] != ' ') printf("%c", str[i]); } } #include <stdio.h> #include <string.h> int main() { char str[100001] = {}; int a =0, b=0; scanf("%s", str); for(int i = 0; str[i] != NULL; i++) { if(str[i] == '(') a++; else if(str[i] == ')') b++; } printf("%d %d", a, b); } #include <stdio.h> #include <string.h> int main() { char str[11]; int memo[11] = {}, a = 0; scanf("%s", str); for(int i = 0; str[i] != NULL; i++) { if(str[i] == 't') { printf("%d ",i+ 1); } } } #include <stdio.h> #include <string.h> int main() { char str[1001]; scanf("%s", str); for(int i = 0; str[i] != NULL; i++) { if(str[i] >= 97 && str[i] <= 122) str[i] -= 32; else if(str[i] >= 65 && str[i] <= 90) str[i] += 32; } printf("%s", str); } #include <stdio.h> #include <string.h> int main() { char str[101]; gets(str); int a = 0, b = 0, c = 0; for(int i = 0; str[i] != NULL; i++) { if(str[i] >= 97 && str[i] <= 122) str[i] -= 32; if(str[i] == 'C') a++; } for(int i = 0; str[i] != NULL; i++) { if(str[i] == 'C'){ c++; if(c >= 2){ b++; } } else{ c = 0; } } printf("%d\n%d", a, b); } #include <stdio.h> #include <string.h> int main() { char str[10001]; gets(str); int c = 0, a = 0; for(int i = 0; str[i] != NULL; i++) { if(str[i] == 'l') if(str[i+1] == 'o') if(str[i+2] == 'v') if(str[i+3] == 'e') a++; } printf("%d", a); } */ #include <stdio.h> #include <string.h> int main() { char str[20001]; gets(str); for(int i = 0; str[i] != NULL; i++) { if(str[i] > 'c') str[i] -= 3; else if(str[i] != ' ') str[i] =str[i]+'x'-'a'; } printf("%s", str); }
0
0
1

jianC

더보기
bottom of page