본문 바로가기
  • 밥 하루하루

공돌이/C언어44

[백준/C언어] 배수와 약수 (5086번) #define _CRT_SECURE_NO_WARNINGS #include #include // malloc, free 함수를 사용하기 위해 필요 #include int main(void) { int input1, input2; while (1) { scanf("%d %d\n", &input1, &input2); if (input1 == 0 && input2 == 0) break; else if (input2 % input1 == 0) printf("factor\n"); else if (input1 % input2 == 0) printf("multiple\n"); else printf("neither\n"); } return 0; } -. swtich문으로 하려다가 if, else if, else로 했습니다. 2024. 3. 21.
[백준/C언어] 덩치 (7568번) #define _CRT_SECURE_NO_WARNINGS #include #include // malloc, free 함수를 사용하기 위해 필요 #include int main(void) { int N, cnt; int x[50] = { 0, }; int y[50] = { 0, }; scanf("%d", &N); for (int i = 0; i < N; i++) { scanf("%d %d", &x[i], &y[i]); } for (int i = 0; i < N; i++) { cnt = 0; for (int j = 0; j < N; j++) { if (x[i] < x[j] && y[i] < y[j]) { cnt++; } } printf("%d ", cnt+1); } return 0; } -. 2중 for문.. 2024. 3. 18.
[백준/C언어] 커트라인 (25305번) #define _CRT_SECURE_NO_WARNINGS #include #include // malloc, free 함수를 사용하기 위해 필요 #include void swap(int* a, int* b) { int temp = *a; *a = *b; *b = temp; } int main(void) { int N, k; scanf("%d %d", &N, &k); int* arr = (int*)malloc(sizeof(int) * N); for (int i = 0; i < N; i++) { scanf("%d", &arr[i]); } for (int i = 0; i < N-1; i++) { for (int j = i+1; j < N; j++) { if (arr[i] < arr[j]) { swap(&arr.. 2024. 3. 15.
[백준/C언어] 중앙 이동 알고리즘 (2903번) #define _CRT_SECURE_NO_WARNINGS #include #include // malloc, free 함수를 사용하기 위해 필요 int main(void) { int N; int result = 1; scanf("%d", &N); for (int i = 0; i < N; i++) { result *= 2; } result = result + 1; printf("%d\n", result * result); return 0; } -. 어떻게 풀어야할지 겁나 생각하다보니, 제곱 관련 문제였음. -. 2^x + 1을 하면 가로(혹은 세로) 개수를 구할 수 있음. -. 구하고 나서 곱하면 답 출력됨. while을 쓰든 for 쓰면 될 듯함. 2024. 3. 13.
[백준/C언어] 세탁소 사장 동혁 (2720번) #define _CRT_SECURE_NO_WARNINGS #include #include // malloc, free 함수를 사용하기 위해 필요 int main(void) { int T; // 테스트 개수 int C; // 거스름 돈 int Q, D, N, P; scanf("%d", &T); for (int i = 0; i < T; i++) { scanf("%d", &C); Q = C / 25; D = (C%25) / 10; N = (C % 25 %10) / 5; P = (C % 25 % 10 %5) / 1; printf("%d %d %d %d\n", Q, D, N, P); } return 0; } -. 나머지 구하기 연산자를 이용해서 풀면 됨. 2024. 3. 12.
[백준/C언어] 색종이 (2563번) -. 처음에는 겹치는 부분에 대해 cnt를 시켜서 겹치는 부분을 구해서 하려고 했지만, 완전 간단한 방법이 있었음. -. 입력한 색종이 위치에 대해 '1'을 넣어준 다음, 1을 넣어준 부분은 cnt하면 됨. #define _CRT_SECURE_NO_WARNINGS #include #include // malloc, free 함수를 사용하기 위해 필요 int main(void) { int paper[100][100] = { 0, }; int n, x, y = 0; int cnt = 0; scanf("%d", &n); //색종이 수 입력 for (int i = 0; i < n; i++) { scanf("%d %d", &x, &y); // 색종이 시작 좀 입력 for (int j = x; j < x + 10;.. 2024. 3. 11.
[백준/C언어] 세로읽기 (10798번) #include #include // malloc, free 함수를 사용하기 위해 필요 int main(void) { char row = 5, col = 15; // 행(row)과 열(col)의 크기를 변경 char arr[5][15] = { 0 }; // 초기화 해줘야함. 안하면 쓰레기값 출력됨. for (int i = 0; i < row; i++) { scanf("%s", arr[i]); } for (int i = 0; i < col; i++) { //col = 15 for (int j = 0; j < row; j++) { //row =5 if (arr[j][i] != '\0') // NULL이 아니면 출력함. printf("%c", arr[j][i]); } } return 0; } -. string.. 2024. 3. 8.
[백준/C언어] 최댓값 (2566번) #include #include // malloc, free 함수를 사용하기 위해 필요 int main(void) { int row = 9 , col = 9; int max, m_row = 0, m_col = 0; int** arr = (int**)malloc(sizeof(int*) * row); for (int i = 0; i < row; i++) { arr[i] = (int*)malloc(sizeof(int) * col); } for (int i = 0; i < row; i++) { for (int j = 0; j < col; j++) { scanf("%d", &arr[i][j]); } } max = arr[0][0]; // 0부터 비교시작하기 위해 // 2차 배열에서 최대값과 그 위치를 구하기 위한.. 2024. 3. 7.
[백준/C언어] 개수 세기 (10807번) #include #include // malloc, free 함수를 사용하기 위해 필요 int main(void) { int N, v; int cnt = 0; scanf("%d", &N); int* arr = (int*)malloc(sizeof(int) * N); for (int i = 0; i < N; i++) { scanf("%d", &arr[i]); } scanf("%d", &v); for (int i = 0; i < N; i++) { if (arr[i] == v) { cnt++; } } printf("%d\n", cnt); free(arr); return 0; } -. 일단 동적(malloc)으로 배열 선언하고, -. 정수 개수와 입력받을 정수 입력하고, -. 비교 대상인 정수와 배열에 들어간 정.. 2024. 3. 6.