티스토리 뷰

Algorithm/BOJ

백준 1932번 C++

poopooreum 2023. 8. 3. 19:08
반응형

백준 1932번 정수 삼각형
https://www.acmicpc.net/problem/1932

1932번: 정수 삼각형

첫째 줄에 삼각형의 크기 n(1 ≤ n ≤ 500)이 주어지고, 둘째 줄부터 n+1번째 줄까지 정수 삼각형이 주어진다.

www.acmicpc.net



정답 코드

#include <iostream>
#include <vector>
using namespace std;

int main() {
	int n;
	cin>>n;
	vector<int> temp;
	vector<vector<int>> triangle;
	int one;
	
	for(int i = 1; i<=n; i++){
		temp.clear();
		for(int j = 0; j<i; j++){
			cin>>one;
			temp.push_back(one);
		}
		triangle.push_back(temp);
	}
	
	
	for(int i = n-1; i>0; i--){
		// j를 0부터 n-2까지 키우며
		for(int j = 0; j<triangle[i].size()-1; j++){
			//j와 j+1중 크기가 더 큰걸 누적해 더해나간다.
			if(triangle[i][j]>=triangle[i][j+1]){
				triangle[i-1][j] += triangle[i][j];
			}
			else{
				triangle[i-1][j] += triangle[i][j+1];
			}
			
		}
		
	}

	
	cout<<triangle[0][0];
	
}


문제 폴이
다이나믹 프로그래밍을 이용해서 풀 수 있는 문제입니다. 이중 반복문을 돌리면서 배열 아래쪽부터 탐색해서 큰 값을 윗줄에 더해주면서 풀어주면 됩니다. 그리드 알고리즘으로 풀게 되면 오답 처리되니 주의 바랍니다.

반응형

'Algorithm > BOJ' 카테고리의 다른 글

백준 1940번 C++  (0) 2023.08.03
백준 1934번 C++  (0) 2023.08.03
백준 1929번 C++  (0) 2023.08.03
백준 1927번 C++  (0) 2023.08.03
백준 1926번 C++  (0) 2023.08.03
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
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
글 보관함