일상
[C++] 백준 2738 : 행렬 덧샘 본문
코드 제출은 하였지만 비효율적이라고 생각하여 다른 분들의 블로그를 참고해서 수정을 하였다.
첫 번째 방법은 2차원 배열 두개를 선언하여 풀었고 두 번째 방법은 2차원 배열 하나만 가지고 풀었다. 일회성일 경우에는 두 번째 방법이 옳겠지만 계속해서 쓸 경우에는 첫 번째 방법이 유리할 것 이라고 생각된다.
근데 사실 다 비슷한 방법으로 풀어서 그냥 아무 방법으로 풀어도 상관 없을 것 같다. 다른 분들의 방법도 대부분 내 방법과 동일하였다.
첫 번째 제출 코드 (delete[] arr1, arr2가 빠졌다)
#include <iostream>
#include <string>
int main() {
int row, col;
std::cin >> row >> col;
//2차원 배열 동적 할당
int** arr1 = new int *[row];
int** arr2 = new int* [row];
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
arr1[i] = new int[col];
arr2[i] = new int[col];
}
}
//arr1 값 입력
for (int a = 0; a < row; a++) {
for (int b = 0; b < col; b++) {
std::cin >> arr1[a][b];
}
}
//arr2 값 입력 후 arr1에 더해줌
for (int a = 0; a < row; a++) {
for (int b = 0; b < col; b++) {
std::cin >> arr2[a][b];
arr1[a][b] += arr2[a][b];
}
}
//arr1 값 출력
for (int a = 0; a < row; a++) {
for (int b = 0; b < col; b++) {
std::cout << arr1[a][b] << " ";
}
std::cout << "\n";
}
}
두 번째 제출코드
#include <iostream>
#include <string>
int main() {
int row, col;
std::cin >> row >> col;
//2차원 배열 동적 할당
int** arr1 = new int* [row];
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
arr1[i] = new int[col];
}
}
//arr1 값 입력
for (int a = 0; a < row; a++) {
for (int b = 0; b < col; b++) {
std::cin >> arr1[a][b];
}
}
//특정 값 입력 후 arr1에 더해줌
int num;
for (int a = 0; a < row; a++) {
for (int b = 0; b < col; b++) {
std::cin >> num;
arr1[a][b] += num;
}
}
//arr1 값 출력
for (int a = 0; a < row; a++) {
for (int b = 0; b < col; b++) {
std::cout << arr1[a][b] << " ";
}
std::cout << "\n";
}
delete[] arr1;
}
'computer graphics' 카테고리의 다른 글
bvh 적용해보기 - 02 (0) | 2021.11.13 |
---|---|
bvh 적용해보기 - 01 (0) | 2021.11.12 |
Cornell box 만들어보기 (0) | 2021.11.06 |
Fresnel Coefficient 적용해보기 -03 (0) | 2021.10.08 |
Fresnel Coefficient 적용해보기 -02 (0) | 2021.10.03 |
Comments