모든 경우의 수를 해당 경우의 index에 저장한 후 답을 찾았다.
최대 값에 해당하는 경우를 vector에 저장하다가, 가지고 있던 최대 값보다 큰 값을 만나면 최대 값을 갱신하고 vector를 clear()한 후 다시 답을 저장했다.
#include <iostream>
#include <ios>
#include <vector>
using namespace std;
int N, M, cnt[41];
vector<int> result;
void getResult();
void print();
int main() {
int T; cin >> T;
for (int tc = 1; tc <= T; tc++) {
fill_n(cnt, N + M, 0);
result.clear();
cin >> N >> M;
cout << '#' << tc;
getResult();
}
return 0;
}
void getResult() {
// 경우의 수 구하기
for (int i = 1; i <= N; i++) {
for (int j = 1; j <= M; j++) {
cnt[i + j]++;
}
}
// 등장할 확률이 가장 높은 숫자 찾기
int max = -1;
for (int i = 2; i <= 40; i++) {
if (cnt[i] < max) continue;
else if (cnt[i] == max) result.push_back(i);
else if (cnt[i] > max) {
result.clear();
result.push_back(i);
max = cnt[i];
}
}
print();
}
void print() {
for (int i = 0; i < result.size(); i++) {
cout << ' ' << result[i];
}
cout << "\n";
}
'알고리즘 > SWEA' 카테고리의 다른 글
[SWEA] 5603. 건초더미 (0) | 2019.05.06 |
---|---|
[SWEA] 3142. 영준이와 신비한 뿔의 숲 (0) | 2019.05.06 |
[SWEA] 2805. 농작물 수확하기 (0) | 2019.05.06 |
[SWEA] 3456. 직사각형 길이 찾기 (0) | 2019.05.05 |
[SWEA] 4406. 모음이 보이지 않는 사람 (0) | 2019.05.03 |
댓글