알고리즘
[C++] 백준 2455번 지능형 기차
J3SUNG
2019. 8. 25. 03:53
728x90
기차역 4개에서 사람들이 타고 내릴 때
가장 많은 사람이 기차에 타고 있는 경우의 사람 수를 출력하는 문제입니다.
점화식을 세워서 풀었습니다.
arr[i][2] = arr[i - 1][2] + arr[i][1] - arr[i][0];
현재역의 사람 수 = 이전 역의 사람 수 + 이번 역에서 탄 사람 수 - 이번 역에서 내린 사람 수 입니다.
그리고 현재역의 사람 수들 중 가장 큰 값을 저장해두어서 마지막에 출력했습니다.
#include <iostream>
#include <algorithm>
#include <cstring>
#include <string>
using namespace std;
int main(int argc, char *argv[])
{
int arr[5][3];
int maxPeople = -1;
memset(arr, 0, sizeof(arr));
for (int i = 1; i <= 4; ++i) {
cin >> arr[i][0];
cin >> arr[i][1];
arr[i][2] = arr[i][1] - arr[i][0] + arr[i - 1][2];
maxPeople = max(maxPeople, arr[i][2]);
}
cout << maxPeople << endl;
return 0;
}