2455 지능형 기차
Updated:
2455 지능형 기차
[Baekjoon] 2455 지능형 기차, 문제 풀이.
프로그래밍 언어: C
문제
접근
내린 사람을 - 처리, 탄 사람을 + 처리하는 방식으로 기차 안의 사람 수를 계산한다. 여기서 살펴봐야할 점은 기차 안의 수가 가장 많아지는 순간이다. 즉, 최댓값을 구해야 한다. 그래서 기차 안의 사람 수를 계산하는 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