안녕하세요. 오늘은 SW Expert Academy의 2001번 파리 퇴치를 가져와 봤습니다.
역시나 SW Expert Academy의 문제는 직접 홈페이지에 들어가셔서 보셔야 할 것 같습니다.
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
마찬가지로, 충분한 고민 후에 잘 안풀리신 다면 다음의 코드를
참고하시면 될 것 같아요~
˙
˙
˙
˙
˙
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int test; //testcase
int n;
int m;
int cnt = 1;
cin >> test;
while (test--) {
vector<int>max_num;
int arr[15][15];
cin >> n >> m;
if (m > n) return -1;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cin >> arr[i][j];
}
}
int temp = 0;
for (int z = 0; z <= n - m; z++) {
for (int k = 0; k <= n - m; k++) {
for (int i = 0; i < m; i++) {
for (int j = 0; j < m; j++) {
temp += arr[i + z][j+ k];
}
}
max_num.push_back(temp);
temp = 0;
}
}
sort(max_num.begin(), max_num.end());
cout << "#" << cnt++ << " ";
cout << max_num.back();
cout << "\n";
}
return 0;
}
sort라는 함수는 <algorithm>에 포함되어 있는데요. 벡터를 정렬해줍니다.
N은 영역의 크기이고, M은 파리채의 크기이며,
4중 포문을 썼는데 이유는 영역이 2개이므로 z와 k는 n영역을 i와 j는 m영역을 다룬다고 생각하시면 될 것 같습니다.
'Study > Baekjoon & SW Expert Academy' 카테고리의 다른 글
[백준 : 10872번 팩토리얼, 10870번 피보나치 수 5] (0) | 2019.12.13 |
---|---|
[백준 : 1316번 그룹 단어 체커] (0) | 2019.11.29 |
[SW Expert Academy : 1986번 지그재그 숫자, 1989번 초심자의 회문 검사] (4) | 2019.11.06 |
[백준 : 1157번 단어 공부] (4) | 2019.11.05 |
[ SW Expert Academy : 1984번 중간 평균값 구하기 ] (2) | 2019.11.02 |