본문 바로가기
백준

[백준] 2455번 : 지능형 기차 – JAVA [자바]

by Hongwoo 2022. 4. 26.
반응형

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

 

2455번: 지능형 기차

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

www.acmicpc.net

 


  • 문제

 

 


  • 문제 풀이

백준 2455번 지능형 기차는 브론즈 3 난이도의 수학 문제이다. 이 문제에서는 1 번역부터 4 번역까지 있는 지하철역이 있다. 1번에서 출발하고 4 번역은 종착역이다. 그리고 각 역에서 내리는 사람이 있으면 먼저 사람이 내리고 그다음에 탄다. 이때 기차에 있는 최대 사람 수를 구하면 된다.

 

각 역에서 내리는 사람의 수를 Ai라고 하고 타는 사람의 수를 Bi라고 하겠다. 그리고 현재 기차 안에 있는 사람 수를 now라고 하겠다. 

 

우선 1번 역을 보겠다. 타는 사람만 있으니 now = B1이 된다.

 

2번 역에서는 A2명이 내리고 B2명이 탄다. 즉, now = (B1) + (B2 - A2)가 된다.

 

3번 역에서도 마찬가지로 A3명이 내리고 B3명이 탄다. 즉, now = (B1) + (B2 - A2) + (B3 - A3)가 된다.

 

4번 역에서도 마찬가지로 A4명이 내리고 B4명이 탄다. 즉, now = (B1) + (B2 - A2) + (B3 - A3) + (B4 - A4)가 된다.

 

이 중에서 최댓값을 출력하면 된다.

 

문제에서 주어진 예제를 보겠다.

 

1 번역 : now = 32

 

2 번역 : now = 32 + (13 - 3) = 42

 

3 번역 : now = 42 + (25 - 28) = 39

 

4 번역 : now = 39 + (0 - 39) = 0

 

따라서 이 중에서 최댓값인 42가 답이다.

 


  • 코드

 

import java.io.*;
import java.util.*;
public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int max = 0;
        int now = 0;
        for (int i = 0; i < 4; i++) {
            StringTokenizer st = new StringTokenizer(br.readLine());
            int out = Integer.parseInt(st.nextToken());
            int in = Integer.parseInt(st.nextToken());
            now -= out;
            now += in;
            max = Math.max(max, now);
        }
        System.out.print(max);
    }
}

  • 후기

되게 쉬운 브론즈 문제였다.

 

반응형

댓글