2455 지능형 기차

Updated:

2455 지능형 기차

[Baekjoon] 2455 지능형 기차, 문제 풀이.
프로그래밍 언어: C

문제

2455 지능형 기차

접근

내린 사람을 - 처리, 탄 사람을 + 처리하는 방식으로 기차 안의 사람 수를 계산한다. 여기서 살펴봐야할 점은 기차 안의 수가 가장 많아지는 순간이다. 즉, 최댓값을 구해야 한다. 그래서 기차 안의 사람 수를 계산하는 sum과 최댓값이 갱신될 때 저장할 공간인 max를 선언했다.

	int input01, input02;
	int sum = 0; // 기차 안의 사람 수
	int max = 0; // 최댓값이 갱신 될 때마다 저장될 공간

최댓값을 갱신하는 방법은 조건문을 이용해 현재 기차 안의 사람 수 sum이 기존 저장된 max보다 크다면 max로 갱신해주는 방식을 사용했다.

		if (max < sum) 
		{
			max = sum; // 최댓값 갱신
		}

반복문이 끝나고 max 값을 출력해주면 문제를 해결할 수 있다.

전체 코드

#include <stdio.h>

int main(void)
{
	int input01, input02;
	int sum = 0; // 기차 안의 사람 수
	int max = 0; // 최댓값이 갱신 될 때마다 저장될 공간
	
	for (int i = 0;i < 4;i++)
	{
		scanf("%d %d", &input01, &input02);
		sum -= input01; // 내린 사람
		sum += input02; // 탄 사람
		if (max < sum) 
		{
			max = sum; // 최댓값 갱신
		}
	}
	printf("%d", max);

	return 0;
}

개선 및 부족한 사항

  • 계산 도중에 최댓값을 갱신하는 문제는 새로운 공간을 할당해주는 것이 편하다.
  • 최댓값 갱신에는 여러가지 방법이 있겠지만 조건문이 편하다.

Leave a comment