𝓡𝓸𝓸𝓶𝟣: 𝒜𝓁𝑔𝑜𝓇𝒾𝓉𝒽𝓂/알고리즘 문제 풀이
BOJ17127 : 벚꽃이 정보섬에 피어난 이유 (Bronze 1)
연혜슬
2021. 8. 11. 01:28
#include <iostream>
using namespace std;
int N;
int A[10];
int sum(int a, int b, int c);
int main()
{
int max = 0;
int count = 0;
cin >> N;
for (int i = 0; i < N; i++)
cin >> A[i];
for (int i = 1; i < N - 2; i++)
{
for (int j = i + 1; j < N - 1; j++)
{
for (int k = j + 1; k < N; k++)
{
int tmp = sum(i, j, k);
if (max < tmp)
max = tmp;
}
}
}
cout << max;
}
int sum(int a, int b, int c)
{
int sum1 = 1, sum2 = 1, sum3 = 1, sum4 = 1;
for (int i = 0; i < a; i++)
{
sum1 *= A[i];
}
for (int i = a; i < b; i++)
{
sum2 *= A[i];
}
for (int i = b; i < c; i++)
{
sum3 *= A[i];
}
for (int i = c; i < N; i++)
{
sum4 *= A[i];
}
return sum1 + sum2 + sum3 + sum4;
}
i, j, k는 4개의 범위를 나눠주는 구분자들이다. 구분 가능한 모든 경우의 수를 돌면서 sum값을 구해서 최댓값을 출력하는 간단한 문제였다!
(특이사항 : 1트에 성공함 ㅎㅎ)