본문 바로가기

하루하나코딩

백준 9465 : 스티커 c++

코드

#include <iostream>
#include <algorithm>

using namespace std;

int main(){
	int N, T;
	int sticker[2][100010];
	int dp[2][100010];
	cin >> T;
	while(T!=0){
		T--;
		cin >> N;
		for(int i = 0; i < 2; i++){
			for(int j = 0; j < N; j++){
				cin >> sticker[i][j];
			}
		}
		dp[0][0] = sticker[0][0];
		dp[1][0] = sticker[1][0];
		
		int a;
		for(int j = 2; j < 2*N; j++){
			if(j%2 == 0){
				a = 0;
				dp[a][j/2] = max(dp[1][j/2-1] + sticker[a][j/2], dp[a][j/2-1]);
			}
			else{
				a = 1;
				dp[a][j/2] = max(dp[0][j/2-1] + sticker[a][j/2], dp[a][j/2-1]);		
			} 
		}
	
		cout << max(dp[0][N-1],dp[1][N-1]) << "\n";
	}
	
	
	
	return 0;
}

알게된 점

1트만에 풀었어요 !!

점화식을 잘 생각해서 풀면 됩니다!!

'하루하나코딩' 카테고리의 다른 글

백준 9461 : 파도반 수열 c++  (0) 2023.01.12
백준 2293 : 동전 1 c++  (0) 2023.01.11
백준 2579 : 계단 오르기 c++  (0) 2023.01.06
백준 5014번 : 스타트링크 c++  (0) 2023.01.05
백준 2468번 : 안전영역 c++  (0) 2023.01.05