오늘의 알고리즘
[C++] 백준 2096 내려가기
하늘하늘 .
2022. 10. 17. 19:44
#include <iostream>
#include <vector>
int N = 0;
int MaxDP[3] = {};
int MinDP[3] = {};
int main()
{
std::cin >> N;
for (int i = 1; i <= N; ++i)
{
int iFirst = 0;
int iSecond = 0;
int iThird = 0;
std::cin >> iFirst >> iSecond >> iThird;
int iMaxFirst = MaxDP[0];
int iMaxSecond = MaxDP[1];
int iMaxThird = MaxDP[2];
int iMinFirst = MinDP[0];
int iMinSecond = MinDP[1];
int iMinThird = MinDP[2];
MaxDP[0] = std::max(iMaxFirst + iFirst, iMaxSecond + iFirst);
MaxDP[1] = std::max(std::max(iMaxFirst + iSecond, iMaxSecond + iSecond), iMaxThird + iSecond);
MaxDP[2] = std::max(iMaxSecond + iThird, iMaxThird + iThird);
MinDP[0] = std::min(iMinFirst + iFirst, iMinSecond + iFirst);
MinDP[1] = std::min(std::min(iMinFirst + iSecond, iMinSecond + iSecond), iMinThird + iSecond);
MinDP[2] = std::min(iMinSecond + iThird, iMinThird + iThird);
}
std::cout << std::max(std::max(MaxDP[0], MaxDP[1]), MaxDP[2]) << " " << std::min(std::min(MinDP[0], MinDP[1]), MinDP[2]);
return 0;
}
티스토리가 돌아왔네여 다시 시작하겠습니다~
메모리초과가 너무 많이 나길래 이게 왜... 왜... 이러다가 메모리 제한이 4mb인걸 확인했습니다...
너무 편하게 풀 생각을 했나봅니다. 메모리도 아끼면서 풀어야하는데 이건 좀 생각을 다시 하게? 만들어줬습니다.
이전걸 기억해놓고 풀고 하면 메모리 안으로 들어옵니다.