백준의 지능형기차(2455) 문제이다.
( 문제 바로가기 )
[ 문제설명 ]
- 총 4개의 역을 돌아다니는 지능형 기차가 있다. 입력으로 각 역에서 타는 사람과 내리는 사람의 수가 주어진다.
- 이 기차에 최대로 사람이 많이 탔을 때의 인원수를 출력시키면 된다.
[ 문제풀이 ]
1. 먼저 입력으로 주어지는 타는사람과 내리는사람의 수를 저장하면 된다.
배열을써도 좋고, Vector를 써도 좋고 가장 편한걸 사용하면 된다.
2. 전체 인원을 관리할 변수를 하나 만들고, 최대인원을 관리할 변수를 하나 만들어서 접근해보자.
각 역에서 내리는 인원을 전체 인원에서 빼주고, 타는 인원을 전체인원에 더해주면서 전체인원 값을 최대인원값과
비교해서 갱신시켜주면 된다.
그리 어렵지 않은 문제이다.
[ 소스코드 ]
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | #include<iostream> #include<vector> #define endl "\n" using namespace std; vector<pair<int, int>> V[4]; void Input() { for (int i = 0; i < 4; i++) { int a, b; cin >> a >> b; V[i].push_back(make_pair(a, b)); } } void Solution() { int Total = 0; int Max = 0; for (int i = 0; i < 4; i++) { int Out = V[i].front().first; int In = V[i].front().second; Total = Total - Out; Total = Total + In; if (Max < Total) Max = Total; } cout << Max << endl; } void Solve() { Input(); Solution(); } int main(void) { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); //freopen("Input.txt", "r", stdin); Solve(); return 0; } | cs |
'[ BOJ Code ] > # BOJ -' 카테고리의 다른 글
[ 백준 1010 ] 다리놓기 (C++) (0) | 2018.12.09 |
---|---|
[ 백준 1094 ] 막대기 (C++) (0) | 2018.12.09 |
[ 백준 14503 ] 로봇 청소기 (C++) (2) | 2018.12.09 |
[ 백준 14891 ] 톱니바퀴 (C++) (0) | 2018.12.09 |
[ 백준 14442 ] 벽 부수고 이동하기2 (C++) (0) | 2018.12.09 |