盗みを働く


#include <string>
#include <vector>
#include <algorithm>
using namespace std;

int solution(vector<int> money) {
	vector <long> house1;
	vector <long> house2;
	int msize = money.size();
	house1.resize(msize, money[0]);
	house2.resize(msize, money[1]);
	house2[0] = 0;
	for (int i = 2; i <= msize - 2; i++)
		house1[i] = max(house1[i - 2] + money[i], house1[i - 1]);
                            
	for (int i = 2; i <= msize - 1; i++)
		house2[i] = max(house2[i - 2] + money[i], house2[i - 1]);

	return max(house1[msize - 2], house2[msize - 1]);
}
정확성  테스트
테스트 1 〉	통과 (0.01ms, 3.96MB)
테스트 2 〉	통과 (0.02ms, 3.95MB)
테스트 3 〉	통과 (0.01ms, 3.97MB)
테스트 4 〉	통과 (0.01ms, 3.95MB)
테스트 5 〉	통과 (0.01ms, 3.95MB)
테스트 6 〉	통과 (0.02ms, 3.96MB)
테스트 7 〉	통과 (0.01ms, 3.94MB)
테스트 8 〉	통과 (0.01ms, 3.96MB)
테스트 9 〉	통과 (0.02ms, 3.95MB)
테스트 10 〉	통과 (0.01ms, 3.95MB)
효율성  테스트
테스트 1 〉	통과 (11.23ms, 47.6MB)
테스트 2 〉	통과 (10.91ms, 44.7MB)
테스트 3 〉	통과 (11.34ms, 46.5MB)
테스트 4 〉	통과 (11.71ms, 47.1MB)
테스트 5 〉	통과 (9.67ms, 39.6MB)
테스트 6 〉	통과 (10.49ms, 45.2MB)
테스트 7 〉	통과 (5.83ms, 27.6MB)
테스트 8 〉	통과 (6.18ms, 28.4MB)
테스트 9 〉	통과 (7.33ms, 32.9MB)
테스트 10 〉	통과 (10.47ms, 45.5MB)
채점 결과
정확성: 50.0
효율성: 50.0
합계: 100.0 / 100.0