[SWEA] 계산기

문제 보러가기

제한사항

이외의 제한사항은 없다.

첫번째 생각

수가 2이상이라면, 항상 곱하는 것이 최대값을 구하는 방법이므로,

현재 수가 2이상이고, 곱하는 수가 2이상이라면 곱하고 아니라면 더하여 계산한다.

Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>

using namespace std;

int main() {
	int T;
	int N;
	int arr[10];

	scanf("%d", &T);
	for (int tc = 1; tc <= T; tc++) {
		scanf("%d", &N);
		for (int i = 0; i < N; i++) {
			scanf("%d", &arr[i]);
			
		}
		
		int sum = 0;
		for (int i = 0; i < N; i++) {
			if (arr[i] <= 1 || sum <= 1 ) {
				sum += arr[i];
			}
			else {
				sum *= arr[i];
			}
		}
		printf("#%d %d\n", tc, sum);

	}
	return 0;
}