본문 바로가기

Coding Test/백준

[21.01.21] 1_ 02445 지능형 기차

boj.kr/6f93382f47fb49f2abf93bc0345ec1b6

 

공유 소스 보기

 

www.acmicpc.net

 

문제

이 기차는 다음 조건을 만족하면서 운행된다고 가정한다.

  1. 기차는 역 번호 순서대로 운행한다.
  2. 출발역에서 내린 사람 수와 종착역에서 탄 사람 수는 0이다.
  3. 각 역에서 현재 기차에 있는 사람보다 더 많은 사람이 내리는 경우는 없다.
  4. 기차의 정원은 최대 10,000명이고, 정원을 초과하여 타는 경우는 없다.

4개의 역에 대해 기차에서 내린 사람 수와 탄 사람 수가 주어졌을 때, 기차에 사람이 가장 많을 때의 사람 수를 계산하는 프로그램을 작성하시오.

 

입력

각 역에서 내린 사람 수와 탄 사람 수가 빈칸을 사이에 두고 첫째 줄부터 넷째 줄까지 역 순서대로 한 줄에 하나씩 주어진다. 

 

출력

첫째 줄에 최대 사람 수를 출력한다.  

 

        //기차 출발역 1번 ~ 종착역 4번 = 총 4개의 정착역
        //단, 내릴 사람이 모두 내린 후에 기차에 탄다.
        
        //고객 a / 최대 max
        //1번 내린사람 0명 / 탄 사람 32명 = 32
        //2번 내린사람 3명 / 탄 사람 13명 = 32-3+13 = 42
        //3번 내린사람 28명 / 탄 사람 25명 = 42-28+25 = 39
        //4번 내린사람 39명 / 탄 사람 0명 = 39
        
        //기차 안에 사람이 가장 많을 때의 사람 수는?

 

간단하게 for문을 써서 구하였다.

고객을 a라 지정하고, 내린사람과 탄사람의 입력을 받아야하는데,

            a -= sc.nextInt();
            a += sc.nextInt(); 을 이용하여 나타내었고,

최대값을 구하기 위해

중간에 if문을 넣어주어 a가 max보다 크다면 max의 값은 a가 되도록 하였다.

'Coding Test > 백준' 카테고리의 다른 글

[21.01.21] 3_ 01110. 더하기 사이클  (0) 2021.02.05
[21.01.21] 2_ 02588. 곱셈  (0) 2021.02.05
[21.01.20] 별찍기12 ~ 21  (0) 2021.02.05
[21.01.18] 별찍기1 ~ 9  (0) 2021.01.18
[21.01.18] 사칙연산_3  (0) 2021.01.18