-
백준 2455번 : 지능형 기차 (C 언어)c c++ 언어 공부 2023. 10. 9. 13:29
https://www.acmicpc.net/problem/2455
2455번: 지능형 기차
최근에 개발된 지능형 기차가 1번역(출발역)부터 4번역(종착역)까지 4개의 정차역이 있는 노선에서 운행되고 있다. 이 기차에는 타거나 내리는 사람 수를 자동으로 인식할 수 있는 장치가 있다.
www.acmicpc.net
Code:
1234567891011121314151617181920#include <stdio.h>#include <limits.h>int main(){int a, b;int max = INT_MIN;int result = 0;for (int i = 0; i < 4; i++){scanf("%d %d", &a, &b);result -= a;result += b;if (max < result){max = result;}}printf("%d", max);}cs 문제 해결을 위한 전략
주어진 역별로 내린 사람 수와 탄 사람 수를 기반으로 기차 안에 있는 사람 수를 계산하여, 가장 많은 사람이 탑승한 시점을 찾는다. 주어진 조건에 따라 기차에 탑승하는 사람은 질서 있게 이루어진다.
코드 작동 원리
주어진 역별로 내린 사람 수와 탄 사람 수를 기반으로 기차 안에 있는 사람 수를 계산하여, 각 역마다 기차 안에 있는 최대 사람 수를 갱신하면서 최종적으로 가장 많이 탑승한 사람 수를 찾습니다.
- 변수 초기화: 먼저, 최대 사람 수를 저장할 변수 max와 현재 역까지의 기차 안 사람 수를 저장할 변수 result를 초기화합니다.
- 각 역에 대한 처리: 4개의 역에 대해 순차적으로 처리합니다.
- 각 역마다 내린 사람 수를 result에서 빼고, 탄 사람 수를 result에 더합니다.
- 그리고 result를 max와 비교하여 더 큰 값이면 max를 갱신합니다.
- 최대 사람 수 출력: 모든 역에 대한 처리가 끝나면, 가장 많이 탑승한 사람 수인 max를 출력합니다.
알고리즘
- 변수 초기화: max를 음의 무한대로, result를 0으로 초기화합니다.
- 각 역에 대한 반복: 4개의 역에 대해 반복하며 아래 과정을 수행합니다.
- result에서 내린 사람 수를 빼고, 탄 사람 수를 더합니다.
- 만약, result가 현재까지의 최대 사람 수인 max보다 크다면 max를 result로 갱신합니다.
- 결과 출력: 최대 사람 수인 max를 출력합니다.
'c c++ 언어 공부' 카테고리의 다른 글
백준 3985번 : 롤 케이크 (C 언어) (0) 2023.10.10 백준 2460번 : 지능형 기차2 (C 언어) (1) 2023.10.09 백준 1350번 : 진짜 공간 (C 언어) (1) 2023.10.08 백준 14924번 : 폰 노이만과 파리 (C 언어) (0) 2023.10.07 백준 1225번 : 이상한 곱셈 (C 언어) (0) 2023.10.06