Algorithm/baekjoon
2167 이차원 배열의 합/10798 세로읽기
쿠뱃봉
2022. 2. 13. 23:03
1.2167 이차원 배열의 합
https://www.acmicpc.net/problem/2167
#include<iostream>
#include<string.h>
using namespace std;
int main() {
cin.tie(NULL);
cin.sync_with_stdio(false);
int n, m;
cin >> n >> m;
int** arr = new int* [n];
for (int i = 0; i < n; i++) {
arr[i] = new int[m];
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cin >> arr[i][j];
}
}
int forn;
cin >> forn;
for (int a = 0; a < forn; a++) {
int i, j, x, y;
int sum=0;
cin >> i >> j >> x >> y;
for (int m = i-1; m <= x-1; m++) {
for (int n = j-1; n <= y-1; n++) {
sum+=arr[m][n];
}
}
cout << sum<<"\n";
}
for (int i = 0; i < n; i++)
delete[] arr[i];
delete[] arr;
return 0;
}
2.10798 세로읽기
https://www.acmicpc.net/problem/10798
10798번: 세로읽기
총 다섯줄의 입력이 주어진다. 각 줄에는 최소 1개, 최대 15개의 글자들이 빈칸 없이 연속으로 주어진다. 주어지는 글자는 영어 대문자 ‘A’부터 ‘Z’, 영어 소문자 ‘a’부터 ‘z’, 숫자 ‘0’
www.acmicpc.net
깨달은 점)
1.배열에 값을 넣을 때
#include<cstring>을 해서 string으로 입력받아서 size() 함수를 활용하는게 편하다는 것
2. 전역변수 char arr[5][15]; 는 모든 값이 '\0'으로 자동초기화 된다는 것
#include<iostream>
#include<cstring>
using namespace std;
char arr[5][15];
int main() {
cin.tie(NULL);
cin.sync_with_stdio(false);
string str1;
for (int i = 0; i < 5; i++) {
cin >> str1;
for (int j = 0; j < str1.size(); j++) {
arr[i][j] = str1[j];
}
}
for (int j = 0; j < 15; j++) {
for (int i = 0; i < 5; i++) {
if (arr[i][j] == '\0')
continue;
cout << arr[i][j];
}
}
}