탐색
가이드
@gabriel227
전체 보기
프로젝트
포스트
팔로잉
스크랩
전체 보기
프로젝트
포스트
팔로잉
스크랩
프로젝트 히스토리
프로젝트 상세 페이지
타임라인
리스트
2022.02.25
@gabriel227님이 새 포스트를 작성했습니다.
C언어 문제은행 - 외판원 순회 - 15일차
문제를 풀지 못해 풀이방법을 검색하여 찾아보았다. dfs + dp에 대한 개념과 사용 방법에 대해 공부할 수 있는 기회였다. https://yabmoons.tistory.com/358 #include<iostream> #include<cstring> #define endl "\n" #define MAX 16 #define INF 987654321 using namespace std; int N, Answer_Bit; int MAP[MAX][MAX]; int Cost[MAX][1 << MAX]; int Min(int A, int B) { if (A < B) return A; return B; } void Input() { cin >> N; for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { cin >> MAP[i][j]; } } Answer_Bit = (1 << N) - 1; } int DFS(int Cur_Node, int Cur_Bit) { if (Cur_Bit == Answer_Bit) { if (MAP[Cur_Node][0] == 0) return INF; else return MAP[Cur_Node][0]; } if (Cost[Cur_Node][Cur_Bit] != -1) return Cost[Cur_Node][Cur_Bit]; Cost[Cur_Node][Cur_Bit] = INF; for (int i = 0; i < N; i++) { if (MAP[Cur_Node][i] == 0) continue; if ((Cur_Bit & (1 << i)) == (1 << i)) continue; Cost[Cur_Node][Cur_Bit] = Min(Cost[Cur_Node][Cur_Bit], MAP[Cur_Node][i] + DFS(i, Cur_Bit | 1 << i)); } return Cost[Cur_Node][Cur_Bit]; } void Solution() { memset(Cost, -1, sizeof(Cost)); cout << DFS(0, 1) << endl; } void Solve() { Input(); Solution(); } int main(void) { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); //freopen("Input.txt", "r", stdin); Solve(); return 0; } 출처: https://yabmoons.tistory.com/358 [얍문's Coding World..]
2022.02.25
@gabriel227님이 새 포스트를 작성했습니다.
C언어 문제은행 - 회의실 배정 - 15일차
풀이를 계속 해보았으나 코드를 완성하지 못해 완성된 코드를 첨부합니다. https://angangmoddi.tistory.com/34 #include<stdio.h> #include<stdlib.h> typedef struct discussion { int start, end; }Discussion; int compare(const void*, const void*); int main() { int n, i, cnt = 0, t1, t2, last = 0; scanf("%d", &n); Discussion* dis; dis = (Discussion*)calloc(n, sizeof(Discussion)); for (i = 0; i < n; i++) { scanf("%d %d", &t1, &t2); dis[i].start = t1; dis[i].end = t2; } qsort(dis, n, sizeof(Discussion), compare); for (i = 0; i < n; i++) { if (dis[i].start >= last) { cnt++; last = dis[i].end; } } printf("%d", cnt); free(dis); return 0; } int compare(const void* a, const void* b) { const Discussion* n1, * n2; n1 = (const Discussion*)a; n2 = (const Discussion*)b; if (n1->end != n2->end) { if (n1->end < n2->end) { return -1; } else if (n1->end == n2->end) { return 0; } else { return 1; } } else { if (n1->start < n2->start) { return -1; } else if (n1->start == n2->start) { return 0; } else { return 1; } } }
2022.02.24
@gabriel227님이 새 포스트를 작성했습니다.
C언어 문제은행 - 미로찾기 - 14일차
bfs에 대한 개념을 공부하였으나 자신의 힘으로는 풀지 못해 풀이가 된 코드를 공유합니다. https://iamthejiheee.tistory.com/13 #define MOD 10000 #define SZ 101 int i, j, N, M; int map[SZ][SZ]; int visit[SZ][SZ]; struct node { int x; int y; }; struct node queue[MOD + 1]; int tail = 0; int head = 0; int max = 0; int vectX[4] = { 0,0,1,-1 }; int vectY[4] = { 1, -1, 0, 0 }; struct node deque() { struct node temp = queue[head]; head = (head + 1) % MOD; return temp; } int isQueEmpty() { if (head == tail) { return 0; } return 1; } void enque(int x_, int y_) { struct node temp; temp.x = x_; temp.y = y_; queue[tail] = temp; tail = (tail + 1) % MOD; } void do_BFS() { int nextX; int nextY; while (isQueEmpty() == 1) { // 다음 방문할 노드 : [nextX][nextY] struct node k = deque(); for (i = 0; i < 4; i++) { nextX = k.x + vectX[i]; nextY = k.y + vectY[i]; //방향값 확인 if (nextX >= 1 && nextX <= M && nextY >= 1 && nextY <= N) { // [nextX][nextY]까지 가는 길이 있고 한번도 방문하지 않은 노드인 경우 => queue에 넣는다. if (map[nextX][nextY] == 1) { if (visit[nextX][nextY] == 0) { //[x][y] 에서 [nextX][nextY]까지 가는데 걸리는 노드 개수 visit[nextX][nextY] = visit[k.x][k.y] + 1; enque(nextX, nextY); } } } } } } int main() { scanf("%d %d", &M, &N); for (i = 1; i <= M; i++) { for (j = 1; j <= N; j++) { scanf("%1d", &map[i][j]); } } visit[1][1] = 1; enque(1, 1); do_BFS(); printf("%d\n", visit[M][N]); }
2022.02.24
@gabriel227님이 새 포스트를 작성했습니다.
C언어 문제은행 - 파스칼의 삼각형 - 14일차
#include <stdio.h> int sum(int a, int b){ if (a == 0 || b == 0 || a == b) return 1; else return sum(a - 1, b) + sum(a - 1, b - 1); } int main(){ int n; scanf("%d", &n); for (int i = 0; i < n; i++){ for (int j = 0; j <= i; j++){ printf("%d ", sum(i, j)); } printf("\n"); } return 0; }
2022.02.24
@gabriel227님이 새 포스트를 작성했습니다.
C언어 문제은행 - 소수만들기 - 14일차
#include <stdio.h> int isnp[100000] = {1,1}; char n[300]; int si(int s,int e){ int num = 0, i; for(i = s; i <= e; i++) num = num * 10 + (n[i] - 48); return num; } int main(){ int ans, i, j; scanf("%s",n); for(i = 2; i < 100000; ++i) if(!isnp[i]) for(j = i + i; j < 100000; j += i) isnp[j] = 1; ans = 0; for(i = 0; i < strlen(n); ++i) for(j = i; j < i + 6 && j < strlen(n); ++j){ int num = si(i,j); if(num <= 100000 && !isnp[num]) ans = ans > num?ans:num; } printf("%d",ans); }
2022.02.23
@gabriel227님이 새 포스트를 작성했습니다.
C언어 문제은행 - 팩토리얼의 규칙 - 13일차
#include <stdio.h> int main(void) { int n, count = 0, x[1000]; scanf("%d", &n); for (int i = 0; i < 1000; i++) { x[i] = 5 * (i + 1); if (x[i] <= n) { if (x[i] % 625 == 0) { count += 4; continue; } if (x[i] % 125 == 0) { count += 3; continue; } if (x[i] % 25 == 0) count += 2; else count += 1; } if (x[i] > n) break; } printf("%d", count); }
2022.02.23
@gabriel227님이 새 포스트를 작성했습니다.
C언어 문제은행 - 이어져 있나요? - 13일차
https://blog.naver.com/ndb796/221234427842의 플로이드 와샬 알고리즘을 참고했습니다. #include <stdio.h> #define INF 1000 #define MIN(a,b) a<b?a:b int arr[100][100]; int main() { int N; scanf("%d", &N); for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { scanf("%d", &arr[i][j]); if (arr[i][j] == 0) arr[i][j] = INF; } } for (int k = 0; k < N; k++) { for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { arr[i][j] = MIN(arr[i][j], arr[i][k] + arr[k][j]); } } } for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { if (arr[i][j] == INF) printf("0 "); else printf("1 "); } printf("\n"); } return 0; }
2022.02.23
@gabriel227님이 새 포스트를 작성했습니다.
C언어 문제은행 - 이진탐색 - 13일차
#include <stdio.h> int arr[100], m; int search(int right) { int left = 0, middle; while(left <= right){ middle = (left + right) / 2; if (arr[middle] < m) left = middle + 1; else if (arr[middle] > m) right = middle - 1; else return 1; } return 0; } int main() { int n; scanf("%d",&n); for (int i = 0; i < n; i++) scanf("%d", &arr[i]); scanf("%d", &m); printf("%d", search(m)); }
2022.02.22
@gabriel227님이 새 포스트를 작성했습니다.
C언어 문제은행 - [Challenge!] 블랙잭 - 12일차
#include <stdio.h> int main(void) { int n, m; int sum, max = 0; int i, j, k; int arr[100] = { 0 }; int count = 0; scanf("%d %d", &n, &m); sum = m; for (i = 0; i < n; i++) { scanf("%d", &arr[i]); } for (i = 0; i < n - 2; i++) { for (j = i + 1; j < n - 1; j++) { for (k = j + 1; k < n; k++) { sum = arr[i] + arr[j] + arr[k]; if (sum <= m && max < sum) { max = sum; } } } } printf("%d", max); return 0; }
2022.02.22
@gabriel227님이 새 포스트를 작성했습니다.
C언어 문제은행 - 물이동 - 12일차
#include <stdio.h> int main(void) { int n, sum = 100; scanf("%d", &n); for(int i = 0; i < n; i++) { for(int j = 0; j < n; j++) { if((i * 3) + (j * 5) == n && i+j <= sum ) { sum = i+j; } } } if(sum == 100) { printf("-1"); } else { printf("%d", sum); } return 0; }
2022.02.22
@gabriel227님이 새 포스트를 작성했습니다.
C언어 문제은행 - n번째 분수 - 12일차
#include<stdio.h> int main(void) { int in = 0, x = 1, y = 2, n; scanf("%d", &n); if(n == 1) { printf("1/1"); return 0; } while(n > 2) { if(y == 1 && x % 2 == 0) { x++; n--; in = 1; } else if(x == 1 && y % 2 == 1) { y++; n--; in = 0; } else if(in == 0) { x++; y--; n--; } else if(in == 1) { x--; y++; n--; } } printf("%d/%d", x, y); return 0; }
2022.02.21
@gabriel227님이 새 포스트를 작성했습니다.
c언어 문제은행 - [Challenge!] 스도쿠 - 11일차
#include<stdio.h> int main(void) { int x[9][9], sum, q = 0, w = 0; for(int i = 0; i < 9; i++) { for(int j = 0; j < 9; j++) { scanf("%d", &x[i][j]); } } for(int i = 0; i < 9; i++) { sum = 0; for(int j = 0; j < 9; j++) { sum += x[i][j]; } if(sum != 45) { printf("입력하신 스도쿠는 오답입니다."); return 0; } } for(int i = 0; i < 9; i++) { sum = 0; for(int j = 0; j < 9; j++) { sum += x[j][i]; } if(sum != 45) { printf("입력하신 스도쿠는 오답입니다."); return 0; } } for(int k = 0; k < 9; k++) { int sum = 0; for (int i = w; i < w + 3; i++) { for (int j = q; j < q + 3; j++) { sum += x[i][j]; } } if(sum != 45) { printf("입력하신 스도쿠는 오답입니다."); return 0; } if (q < 6) { q += 3; } else { w += 3; q = 0; } } printf("입력하신 스도쿠는 정답입니다."); return 0; }
2022.02.21
@gabriel227님이 새 포스트를 작성했습니다.
C언어 문제은행 - 가위바위보 게임 - 11일차
#include<stdio.h> #include<stdlib.h> void in(int x) { if(x == 1) { printf("가위\n"); } if(x == 2) { printf("바위\n"); } if(x == 3) { printf("보\n"); } } int main(void) { printf("**************** 가위 바위 보 게임 ****************\n"); int x, random; while(1) { printf("1. 가위 2. 바위 3. 보\n"); printf("입력해주세요 : "); scanf("%d", &x); random = rand() % 3 + 1; printf("컴퓨터 : "); in(random); printf("사용자 : "); in(x); if(random == x) { printf("비겼습니다.\n"); } else if((random == 3 && x == 1) || random + 1 == x) { printf("이겼습니다.\n"); } else { printf("졌습니다.ㅠㅠ\n"); } } return 0; }
2022.02.21
@gabriel227님이 새 포스트를 작성했습니다.
C언어 문제은행 - 알파벳의 거리 - 11일차
#include<stdio.h> #include<string.h> int main(void) { char x[21]={'\0', }, y[21]={'\0', }; int sum = 0; scanf("%s %s", x, y); for(int i = 0; i < strlen(x); i++) { if(x[i] > y[i]) { sum += x[i] - y[i]; } else { sum += y[i] - x[i]; } } printf("%d", sum); return 0; }
2022.02.18
@gabriel227님이 새 포스트를 작성했습니다.
C언어 문제은행 - 수들의 합 - 10일차
#include <stdio.h> int main() { int n, m, a[100], sum, x = 0; scanf("%d %d", &n, &m); //값 받아오기 for(int q = 0; q < n; q++) { scanf("%d", &a[q]); } for(int i = 0; i < n; i++) { sum = 0; //0 초기화 for(int j = i; j < n; j++) //왼쪽부터 더해감 { sum += a[j]; if(sum == m) //만약 합이 m이랑 같을 경우 경우의 수 x++ { x++; } } } printf("%d", x); return 0; }
2022.02.18
@gabriel227님이 새 포스트를 작성했습니다.
C언어 문제은행 - 올바른 괄호 - 10일차
간단하게 괄호의 갯수를 세서 비교했습니다. #include <stdio.h> #include <string.h> int main() { char s[100]; int x = 0, y = 0; scanf("%s", s); for(int i = 0; i < strlen(s); i++) { if(s[i] == '(') { x++; } else if(s[i] == ')') { y++; } } if(x == y) { printf("true"); } else { printf("false"); } return 0; }
2022.02.18
@gabriel227님이 새 포스트를 작성했습니다.
C언어 문제은행 - 정상 정복 - 10일차
#include <stdio.h> int main() { int a, b, n, sum = 0; scanf("%d %d %d", &a, &b, &n); if(a <= b) //만약 올라가는 것 보다 내려가는 것이 더 크면 { printf("-1"); //-1 출력 return 0; } while(1) { sum++; //하루 추가 n -= a; //올라가고 if(n <= 0) //정상보다 높으면 { printf("%d", sum); //날짜 출력 return 0; } n += b; //다시 자면서 내려가기 } }
2022.02.17
@gabriel227님이 새 포스트를 작성했습니다.
C언어 문제은행 - 원래 숫자 구하기 - 9일차
만약 입력받은 수가 10으로 나누어지는 수일 경우 무한루트에 빠지게 됩니다. 수정이 가능한 방법이 있다면 연락 부탁드립니다. #include <stdio.h> int main() { int x, a = 0, b = 0, c = 0, sum = 0; scanf("%d", &x); a = x; while(1) { sum++; if(a / 10 > 0) { b = a % 10; a /= 10; } else { b = a; } c = a + b; if(c / 10 > 0) { c %= 10; } a = (b * 10) + c; if(a == x) { printf("%d", sum); return 0; } } }
2022.02.17
@gabriel227님이 새 포스트를 작성했습니다.
C언어 문제은행 - 상근수 - 9일차
#include <stdio.h> int sum(int x) { int n = 0; while(x > 0) { n += (x % 10) * (x % 10); x /= 10; } if(n == 1) { return 1; } else if(n == 4) { return 0; } else { return sum(n); } } int main() { int x; scanf("%d", &x); for(int i = 1; i <= x; i++) { if(sum(i) == 1) { printf("%d ", i); } } return 0; }
2022.02.16
@gabriel227님이 새 포스트를 작성했습니다.
C언어 문제은행 - 통계학 - 8일차
#include <stdio.h> int main(void) { float y, max = 0, min = 100, sum = 0, temp, z[100] = {0, }, mid; int x; scanf("%d", &x); for(int i = 0; i < x; i++) { scanf("%f", &y); sum += y; //산술평균 구하기 위해 더해주기 if(max <= y) //범위 구하기 위해 최대값 최솟값 구하기 { max = y; } if(min >= y) { min = y; } z[i] = y; //중앙값 구해주기 위해 배열에 숫자 넣어주기 } for(int q = 0; q < x - 1; q++) //버블정렬 이용하여 오름차순 정렬 { for(int w = 0; w < x - 1 - q; w++) { if(z[w] > z[w+1]) { temp = z[w]; z[w] = z[w+1]; z[w+1] = temp; } } } if(x % 2 == 0) //짝수일 때 홀수일 때 가정하기 { mid = (z[x/2 - 1] + z[x/2]) / 2; } else { mid = z[x/2]; } printf("산술평균:%f\n", sum / x); printf("중앙값:%f\n", mid); printf("범위:%.0f\n", max - min); return 0; }
2022.02.16
@gabriel227님이 새 포스트를 작성했습니다.
C언어 문제은행 - 시간 변환 - 8일차
#include <stdio.h> int main(void) { int x, d, h, m; printf("초 단위의 시간을 입력해주세요:"); scanf("%d", &x); printf("%d초 = ", x); d = x / 86400; x %= 86400; if(d != 0) { printf("%d일", d); } h = x / 3600; x %= 3600; if(h != 0) { printf("%d시간", h); } m = x / 60; x %= 60; if(m != 0) { printf("%d분", m); } if(x != 0) { printf("%d초", x); } return 0; }
2022.02.16
@gabriel227님이 포스트를 업데이트했습니다.
포스트
C언어 문제은행 - 뒤집은 소수 - 8일차
2022.02.16
@gabriel227님이 새 포스트를 작성했습니다.
C언어 문제은행 - 뒤집은 소수 - 8일차
#include <stdio.h> int rev(int n) //수를 뒤집는 함수 { int r = 0; while(n) { r *= 10; r += (n%10); n /= 10; } return r; } int dec(int n) //소수를 구하는 함수 { for(int i = 2; i < n; i++) { if(n % i == 0) { return 1; } } return 0; } int main(void) { int x, y[100], n; printf("입력받을 숫자의 개수를 입력해주세요:"); scanf("%d", &x); for(int i = 1; i <= x; i++) { printf("각 %d번째 숫자를 입력해주세요:", i); scanf("%d", &y[i - 1]); } for(int j = 0; j < x; j++) { if(dec(rev(y[j])) == 0) { printf("%d ", y[j]); } } return 0; }
2022.02.15
@gabriel227님이 새 포스트를 작성했습니다.
C언어 문제은행 - 스택 - 7일차
#include <stdio.h> #include <string.h> int main(void) { char x[100]; char y[10]; int i = 0, j; while(1) { scanf("%s", y); if(strcmp(y, "push") == 0) { scanf("%d", &j); x[i++] = j; } else if(strcmp(y, "pop") == 0) { printf("%d\n", x[i - 1]); x[i - 1] = '\0'; i--; } else if(strcmp(y, "top") == 0) { printf("%d\n", x[i - 1]); } else if(strcmp(y, "bottom") == 0) { printf("%d\n", x[0]); } } }
2022.02.15
@gabriel227님이 새 포스트를 작성했습니다.
C언어 문제은행 - 콤마찍기 - 7일차
#include <stdio.h> #include <string.h> int main(void) { char x[20] = {0, }; scanf("%s", x); if(strlen(x) > 4) { for(int i = 0; i < strlen(x); i++) { if((strlen(x) - i) % 3 == 0 && i != 0) { printf(","); } printf("%c", x[i]); } } else { printf("%s", x); } return 0; }
2022.02.15
@gabriel227님이 새 포스트를 작성했습니다.
C언어 문제은행 - OX퀴즈 점수 계산하기 - 7일차
#include <stdio.h> int main(void) { char x[100]; int i = 0, sum = 0, y = 1; printf("OX퀴즈의 결과를 입력해주세요(ex.OOXOXXO): "); scanf("%s", x); while(x[i] != ' ') { if(x[i] == 'O') { sum += y; y++; } else { y = 1; } i++; } printf("%d\n", sum); return 0; }
2022.02.14
@gabriel227님이 새 포스트를 작성했습니다.
C언어 문제은행 - 뒤집은 정수 - 6일차
수학적인 방법으로 풀었습니다. #include <stdio.h> int rev(int a) { int r = 0; while(a != 0) { r *= 10; //r에 10을 곱해줍니다. r += a % 10; //뒤집으려는 숫자의 1의자리 수를 더해줍니다. a /= 10; //1의 자리 수를 없애줍니다. } return r; } int main(void) { int x, y; scanf("%d %d", &x, &y); printf("%d\n", rev(rev(x) + rev(y))); return 0; }
2022.02.14
@gabriel227님이 새 포스트를 작성했습니다.
C언어 문제은행 - 분수의 연산 - 6일차
사칙연산 4가지를 if문으로 따로 계산하였습니다. 기약분수의 꼴로 바꾸는 문장은 따로 추가하였습니다. #include <stdio.h> int main(void) { int a, b, c, d, i; char e; scanf("%d/%d%c%d/%d", &a, &b, &e, &c, &d); if(e == '+') { i = b; a *= d; b *= d; c *= i; a += c; c = a; } else if(e == '-') { i = b; a *= d; b *= d; c *= i; a -= c; c = a; } else if(e == '*') { a *= c; b *= d; c = a; } else if(e == '%') { a *= c; b *= d; c = a; } if(a >= b) //최대 공약수를 구하는 코드 { for(int i = b; i >= 2; i--) { if(a % i == 0 && b % i == 0) { a /= i; b /= i; } } } else { for(int i = a; i >= 2; i--) { if(a % i == 0 && b % i == 0) { a /= i; b /= i; } } } printf("%d/%d", a, b); return 0; }
2022.02.11
@gabriel227님이 새 포스트를 작성했습니다.
C언어 문제은행 - 약수의 개수 - 5일차
#include <stdio.h> int sum(int a, int b) { int even = 0, count; for(int i = a; i <= b; i++) { count = 0; for(int j = 1; j <= i; j++) { if(i % j == 0) { count++; } } if(count % 2 == 0) { even++; } } return even; } int main(void) { int a, b; scanf("%d %d", &a, &b); printf("%d", sum(a, b)); return 0; }
2022.02.11
@gabriel227님이 새 포스트를 작성했습니다.
C언어 문제은행 - 회문 - 5일차
#include <stdio.h> #include <string.h> int main(void) { char x[100]; printf("단어를 입력해주세요: "); scanf("%s", x); for(int i = 0; i < strlen(x); i++) { if(x[i] != x[strlen(x) - i - 1]) //문자열의 좌우 대칭으로 비교 { printf("%s(은)는 회문이 아닙니다.", x); return 0; } } printf("%s(은)는 회문입니다.", x); return 0; }
2022.02.11
@gabriel227님이 새 포스트를 작성했습니다.
C언어 문제은행 - 자리수의 합 - 5일차
#include <stdio.h> int sum(int x) //자릿수를 구하는 함수 { int sum = 0; while(x) { sum += x % 10; //1의 자리수를 합해줌 x /= 10; //10을 나눠 다음 1의 자리 수를 구하기 위한 준비 } return sum; //자릿수의 합을 리턴 } int main(void) { int x; int y = 0; int big = 0; for(int i = 0; i < 5; i++) { scanf("%d", &x); if(sum(x) > big) //만약 자릿수가 이전보다 크면 { y = x; //출력 값 바꾸기 big = sum(x); //자릿수의 최대값 바꾸기 } } printf("%d", y); return 0; }
2022.02.10
@gabriel227님이 포스트를 업데이트했습니다.
포스트
C언어 문제은행 - 가운데 글자 찾기 - 4일차
2022.02.10
@gabriel227님이 새 포스트를 작성했습니다.
C언어 문제은행 - 피보나치수 - 4일차
#include <stdio.h> int fibo(int n) { if (n == 0) { return 0; } else if(n == 1) { return 1; } else { return fibo(n - 2) + fibo(n - 1); } } int main(void) { int n; scanf("%d", &n); printf("%d\n", fibo(n)); return 0; }
2022.02.10
@gabriel227님이 새 포스트를 작성했습니다.
C언어 문제은행 가운데 글자 찾기
#include <stdio.h> #include <string.h> //strlen을 사용하기 위한 헤더 파일 int main(void) { char x[100]; int len; scanf("%s", x); len = strlen(x); //문자열의 길이를 알아냄 if(len % 2 == 0) //만약 짝수라면 { printf("%c%c", x[len / 2 - 1], x[len / 2]); //두개의 수를 출력 } else //홀수라면 { printf("%c", x[len / 2]); //한개의 수를 출력 } return 0; }
2022.02.08
@gabriel227님이 새 포스트를 작성했습니다.
C언어 문제은행 - 색칠한 블록 - 3일차
#include <stdio.h> int main(void) { int w,l,h; scanf("%d %d %d", &w, &l, &h); printf("%d",(w + l + h)*3 - 8); //단순계산 }
2022.02.08
@gabriel227님이 새 포스트를 작성했습니다.
C언어 문제은행 - 소인수 분해 - 3일차
#include <stdio.h> int main(void) { int x; printf("숫자를 입력해주세요: "); scanf("%d", &x); while(x > 1) //x가 1이랑 같거나 작아지면 스탑 { for(int i = 2; i <= x; i++) //2부터 시작해 x의 길이만큼 진행 { if(x % i == 0) //만약 나눴을 때 나머지가 0이 되면 { printf("%d\n", i); //소인수 출력 x /= i; //소인수로 x를 나누어 준다. break; } } } }
2022.02.07
@gabriel227님이 새 포스트를 작성했습니다.
C언어 문제은행 - 구구단 출력 - 2일차
#include <stdio.h> int main(void) { int x; while(1) //계속 반복 { printf("2부터 9사이 숫자를 입력해주세요(1을 누르면 프로그램이 종료됩니다): "); scanf("%d", &x); //숫자를 받아옴 if(x == 1) //1이면 프로그램 종료 { printf("프로그램을 종료합니다.\n"); return 0; } else if(x >= 1 || x <= 9) // 1 ~ 9의 숫자라면 구구단 출력 { for(int i = 1; i < 10; i++) { printf("%d × %d = %d\n", x, i, x*i); } } else //이외의 숫자라면 오류 { printf("범위 외의 숫자입니다.\n"); } } }
2022.02.07
@gabriel227님이 새 포스트를 작성했습니다.
C언어 문제은행 - + 연산자 - 2일차
#include <stdio.h> #include <stdlib.h> #include <string.h> int main(void) { char x[51]; int sum = 0; scanf("%s", x); //문자열을 받아온다. char *pt = strtok(x, "+"); //+를 기준으로 문자열을 분리 while(pt != NULL) //다음 문자열이 없으면 스탑 { sum += atoi(pt); //문자열을 정수형으로 변환 pt = strtok(NULL, "+"); //자른 문자 다음으로 + 찾기 } printf("%d", sum); //합 출력 return 0; } 5+7+9+10 31
2022.02.04
@gabriel227님이 새 포스트를 작성했습니다.
C 언어 문제은행 - 두 숫자 사이의 n의 배수 찾기 - 1일차
#include <stdio.h> #include <stdlib.h> //문자열 함수를 사용하기 위한 추가 헤더 파일 int main(void) { char x[10], y[10]; int num, numa, numb; printf("숫자 두 개를 입력해주세요(ex. '3 5'): "); //숫자 두개를 문자열로 받아옴 scanf("%s %s", x, y); printf("배수를 알고 싶은 숫자를 입력해주세요: "); //정수형으로 받아옴 scanf("%d", &num); numa = atoi(x); //atoi를 이용하여 문자열을 정수형으로 변환 numb = atoi(y); for(int i = numa; i < numb; i++) //작은 숫자부터 큰 숫자까지 반복 { if(i % num == 0) //배수를 알고 싶은 숫자가 있을 경우 출력 { printf("%d ", i); } } return 0; }
2022.02.04
@gabriel227님이 포스트를 업데이트했습니다.
포스트
C언어 문제은행 - 3월 달력 출력하기 - 1일차
2022.02.04
@gabriel227님이 포스트를 업데이트했습니다.
포스트
C언어 문제은행 - 두 변수의 값 - 1일차
2022.02.04
@gabriel227님이 포스트를 업데이트했습니다.
포스트
C언어 문제은행 - 1일차
2022.02.04
@gabriel227님이 새 포스트를 작성했습니다.
C언어 문제은행 - 3월 달력 출력하기
#include <stdio.h> int main(void) { int sum = 1; printf("일 월 화 수 목 금 토 \n"); for(int i = 0; i < 32; i++) { if(i == 0) //처음 제외 { printf(" "); } else { printf("%d ", i); } sum++; //한번 입력할 때 마다 1씩 추가함 if(i / 10 == 0) //1의 자리 숫자는 10의 자리보다 짧기 때문에 띄어쓰기 추가 { printf(" "); } if((i+1) % 7 == 0) //지금 숫자 + 1이 7로 나누어서 0이면 다음줄로 넘김 { printf("\n"); } } return 0; }
2022.02.04
@gabriel227님이 새 포스트를 작성했습니다.
C언어 문제은행 - 1일차
c언어 문제은행 1일차입니다. #include <stdio.h> void change(int *p1, int *p2) { int chan = *p1; *p1 = *p2; *p2 = chan; } int main(void) { int x, y; printf("숫자를 입력해주세요: "); scanf("%d %d", &x, &y); change(&x, &y); printf("%d %d", x, y); return 0; } 숫자를 입력해주세요: 5 10 10 5