2023년 4월 29일 토요일
이번주 평일은 자바 과제하느라 바빠서 안푼 날도 있고, 많아야 한문제 풀었던 것 같다
오랜만에 휴일이니까 다시 시작!
2738번 문제
2차원 행렬 덧셈이었는데
처음에 시도한 코드 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main(void) { int n, m; scanf("%d %d", &n, &m); int A[n][m]; int B[n][m]; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { scanf("%d", &A[i][j]); } } for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { scanf("%d", &B[i][j]); } } for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { int sum = A[i][j] + B[i][j]; printf("%d ", sum); } printf("\n"); } return 0; } 이게 백준에서는 되는데 visual studio에서는 안되는 이유가 알고 싶다... |
그래서 동적 할당을 이용하여 2차원 배열을 생성해보았다 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> int main(void) { int n, m; scanf("%d %d", &n, &m); int** A = (int**)malloc(n * sizeof(int*)); int** B = (int**)malloc(n * sizeof(int*)); for (int i = 0; i < n; i++) { A[i] = (int*)malloc(m * sizeof(int)); for (int j = 0; j < m; j++) { scanf("%d", &A[i][j]); } } for (int i = 0; i < n; i++) { B[i] = (int*)malloc(m * sizeof(int)); for (int j = 0; j < m; j++) { scanf("%d", &B[i][j]); } } for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { int sum = A[i][j] + B[i][j]; printf("%d ", sum); } printf("\n"); } // 할당된 메모리 해제 for (int i = 0; i < n; i++) { free(A[i]); free(B[i]); } free(A); free(B); return 0; } |
2566번 문제
2차원 배열의 최댓값
1차원 배열 때의 최댓값과 방금 전 풀었던 문제를 응용해서 풀었다
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> int main(void) { int A[9][9]; for (int i = 0; i < 9; i++) { for (int j = 0; j < 9; j++) { scanf("%d", &A[i][j]); } } int max; int check = 0; int check1 = 0; max = A[0][0]; for (int i = 0; i < 9; i++) { for(int j = 0; j<9;j++){ if (max < A[i][j]) { max = A[i][j]; check = i; check1 = j; } } } printf("%d\n%d %d", max, check + 1,check1 + 1); return 0; } |
10798번 문제
세로읽기
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #define MAX_SIZE 15 char str_read[5][MAX_SIZE]; int main(void) { for (int i = 0; i < 5; i++) { scanf("%s", str_read[i]); } for (int j = 0; j < MAX_SIZE; j++) { for (int i = 0; i < 5; i++) { if (str_read[i][j] == NULL) continue; else printf("%c", str_read[i][j]); } } return 0; } |
2563번
색종이 문제
어떻게 해야할지 알겠는데 정작 코드로 그걸 구현하기가 힘들다.. 음...
'코린이의 성장기 > 코린이의 백준 도전기' 카테고리의 다른 글
코린이의 백준 도전기 2일차 (2) | 2023.04.23 |
---|---|
코린이의 백준 도전기 1일차(2) (0) | 2023.04.22 |
코린이의 백준 도전기 1일차 (0) | 2023.04.22 |