https://www.acmicpc.net/problem/1932
쉬운 문제인데 맨 처음에 삼각형 경로를 비교할 때 j값을 j < i로 두고 뭐가 틀렸나 한참 찾았습니다.
주석처리 한 부분은 제대로 잘 더해지고 있는지 확인하기 위한 코드로, 만약 이 글을 읽고 계신 분이 자신의 코드가 잘 작동하지 않는다고 느끼신다면 주석 부분을 긁어서 밑에 넣고 같이 실행시켜보세요.
뭐가 틀린지 알 수 있을 겁니다.
#include <stdio.h>
#define MAX(a, b) (((a) > (b)) ? (a) : (b))
int main(void) {
int n;
int arr[510][510];
scanf("%d", &n);
for(int i = 0; i < n; i++) {
for(int j = 0; j <= i; j++) {
scanf("%d", &arr[i][j]);
}
}
for(int i = 0; i < n; i++) {
for(int j = 0; j <= n - i; j++) {
arr[n - i - 1][j] += MAX(arr[n - i][j], arr[n - i][j + 1]); // (바로 밑과 우측 대각선 비교하여 큰 값 올림)
}
}
/* for(int i = 0; i < n; i++) {
for(int j = 0; j <= i; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}*/
printf("%d", arr[0][0]); //최상단 (가장 큰 값 출력)
}
아까운 30분....
'백준' 카테고리의 다른 글
[C언어] 백준 | 2502번 떡 먹는 호랑이 (0) | 2022.04.04 |
---|---|
[C언어] 백준 | 14430번 자원 캐기 (0) | 2022.04.04 |
[C언어] 백준 | 11053번 가장 긴 증가하는 부분 수열 (0) | 2022.04.02 |
[C언어] 백준 | 2588번 곱셈 (0) | 2022.04.02 |
[C언어] 백준 | 24228번 젓가락 (0) | 2022.04.01 |