소스코드
#include <iostream>
#include <limits>
using namespace std;
int N;
int arr[11];
int op[4];
int max_result = numeric_limits<int>::min();
int min_result = numeric_limits<int>::max();
void dfs(int tmp, int idx, int cur_op) {
if (cur_op == 0) tmp += arr[idx];
else if (cur_op == 1) tmp -= arr[idx];
else if (cur_op == 2) tmp *= arr[idx];
else tmp /= arr[idx];
if (idx == N - 1) {
if (tmp > max_result) max_result = tmp;
if (tmp < min_result) min_result = tmp;
return;
}
for (int i = 0; i < 4; i++) {
if (op[i]) {
op[i]--;
dfs(tmp, idx + 1, i);
op[i]++;
}
}
}
int main(void) {
cin >> N;
for (int i = 0; i < N; i++) {
cin >> arr[i];
}
cin >> op[0] >> op[1] >> op[2] >> op[3];
for (int i = 0; i < 4; i++) {
if (op[i]) {
int tmp = arr[0];
op[i]--;
dfs(tmp, 1, i);
op[i]++;
}
}
cout << max_result << endl << min_result << endl;
}
정수(integer) 또는 소수(float)의 최대, 최소 값으로 초기화하는 방법 :
#include <limits> , int minimum = std::numeric_limits<int> max();
'개인 공부 > 코딩테스트' 카테고리의 다른 글
[C++][프로그래머스] 가장 큰 수 :: seoftware (0) | 2020.04.25 |
---|---|
[C++][백준] 1159번 농구 경기 (0) | 2020.04.24 |
[C++][백준] 7568번 덩치 :: seoftware (0) | 2020.04.22 |
[C++][백준] 14501번 퇴사 :: seoftware (0) | 2020.04.22 |
[C++][백준] 9963번 N-Queen :: seoftware (0) | 2020.04.22 |
댓글