[백준 BOJ] 2460번 지능형 기차 (C++/cpp)

2022. 10. 5. 14:35PS (Program Solving)/BOJ (백준)

문제 설명

https://www.acmicpc.net/problem/2460

 

2460번: 지능형 기차 2

최근에 개발된 지능형 기차가 1번역(출발역)부터 10번역(종착역)까지 10개의 정차역이 있는 노선에서 운행되고 있다. 이 기차에는 타거나 내리는 사람 수를 자동으로 인식할 수 있는 장치가 있다.

www.acmicpc.net

백준 BOJ 2460번 지능형 기차 문제 사진1
백준 BOJ 2460번 지능형 기차 문제 사진2

 

접근 방법 - 사칙연산의 기본 문제

백준의 2460번 문제는 사칙연산에 있어 기본적인 연산을 요구하고 있는 문제이다.

해당 문제는, 각 정거장마다 기차에 승차하고 하차하는 인원을 입력받아 기차의 최대 승객 인원을 구하여 출력해야 하는 문제이다.

필자가 보기엔, 반복문으로 사칙연산을 연속으로 수행하면 쉽게 해결할 수 있는 문제라 판단된다.

따라서 코딩을 하는 데에 어느 정도 익숙해져 있다면 쉽게 풀 수 있는 문제일 것으로 예상된다.

(적어도 최댓값 연산을 하는 방법은 알고 있어야 원활히 해결할 수 있을 것이다.)

혹여나 해당 문제를 해결하는 데에 어려움을 겪고 있다면 아래의 설명과 코드를 참고해보길 바란다.

필자는 아래의 순서대로 코드를 작성하여 문제를 해결하였다.

 

코드의 실행 순서

1) 총 승객의 수를 저장할 변수 sum을 0으로 초기화하여 선언한다. (처음엔 기차에 아무도 탑승해있지 않다.)

잇따라, 최대 승객의 수를 저장할 변수 max를 0으로 초기화하여 선언한다.

 

2) 정거장이 10개이기 때문에, 10번 동안 반복문을 수행하며 아래의 연산을 취한다.

- 하차 인원(a)과 승차 인원(b)을 한 쌍씩 입력받는다.

- sum에 a를 빼고 b를 더한다.

- 만약 현재 sum 값이 max보다 크다면, max에 현재 sum 값을 저장한다.

 

3) 위 연산이 모두 완료되었다면, 최종적으로 저장된 max를 출력한 뒤 실행 종료한다.

반응형

 

성공한 코드

#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable: 4996)
#include <iostream>
#define endl '\n'
using namespace std;

//백준 2460번 코드
int main() {
	ios::sync_with_stdio(false);
	cin.tie(NULL);	cout.tie(NULL);

	int sum = 0;
	int max = 0;
	for (int i = 0; i < 10; i++) {
		int a, b;
		cin >> a >> b;
		sum -= a;	sum += b;
		if (max < sum) { max = sum; }
	}
	cout << max << endl;
}

 

제출 결과

백준 BOJ 2460번 지능형 기차 문제 C++ 제출 결과

(2022.07.22 백준 2460번 문제 제출 결과)

반응형