본문 바로가기
백준

[16198번] 에너지 모으기

by 2744m 2018. 11. 8.
16198번: 에너지 모으기
 
www.acmicpc.net
/*16198번 에너지 모으기*/
#include <iostream>
#include <vector>
using namespace std;
vector<int>ball;
int N;
int Max_power, power_sum;

void power_gain(vector<int> v) {
	if (v.size() == 2) {
		if (Max_power < power_sum) Max_power = power_sum;
	}
	else {
		for (int i = 1; i < v.size()-1; i++) {
			power_sum += v.at(i - 1)*v.at(i + 1);
			int temp = v.at(i);
			v.erase(v.begin() + i, v.begin() + i + 1);
			power_gain(v);
			v.insert(v.begin() + i, temp);
			power_sum -= v.at(i - 1)*v.at(i + 1);
		}
	}
}

int main() {
	ios::sync_with_stdio(0), cin.tie(0);
	cin >> N;
	int a;
	for (int i = 0; i < N; i++) {
		cin >> a;
		ball.push_back(a);
	}
	power_gain(ball);
	cout << Max_power;
}

 

vector 사용법을 연습할 겸 vector로 풀어보았음.

erase 사용시 자동으로 지운 공간을 당겨서 채워주는 점이 편하다.

'백준' 카테고리의 다른 글

[11506번] 占쏙옙  (0) 2019.01.17
[2174번] 로봇 시뮬레이션  (0) 2019.01.17
[1759번] 암호만들기  (0) 2018.11.06
[2210번] 숫자판 점프  (0) 2018.11.06
[13458번] 시험 감독  (0) 2018.11.06

댓글