안경잡이 구루루

백준 2455 (지능형 기차) [Python/파이썬] [Implemention/구현] 본문

파이썬(Python)/문제풀이(백준,BaekJoon)

백준 2455 (지능형 기차) [Python/파이썬] [Implemention/구현]

구루루(gururu) 2023. 11. 8. 10:20
반응형

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

 

2455번: 지능형 기차

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

www.acmicpc.net

 


나:

train =0
max_train = 0
for i in range(4):
    a,b = map(int,input().split())
    train -=a
    train +=b
    if max_train < train:
        max_train = train
print(max_train)

완성된 코드는 위와 같다.

 

위 문제에서 조심할 점은 바로 '역에서 기차에 탈 때, 내릴 사람이 모두 내린 후에 기차에 탄다고 가정'한 것이다.   

 

그리고 네 가지 조건에 입각해서 구현한 코드 설명은 다음과 같다. 

 

(1)
train =0
max_train = 0

우선은 기차에서 내리고 탄 사람의 수를 계산해 나가는 train 변수를 선언.

 

그리고 사람이 가장 많을 때의 사람의 수를 저장하는 변수 max_train을 선언.

 

(2)
for i in range(4):
    a,b = map(int,input().split())
    train -=a
    train +=b
    if max_train < train:
        max_train = train
print(max_train)

4개의 역에 대해 계산을 반복하기 때문에 for 반복문 네 번을 사용

 

한 번 반복할 때 마다 내린 사람 수를 변수 a,  탄 사람 수를 변수 b에 담고 정수형으로 공백을 기준으로 구별해 입력받는다.

 

처음에 언급했던 주의사항대로 먼저 모두 내린 후 기차에 탄다고 가정했기 때문에 train 변수에 내릴 사람 수인 a를 먼저 빼고 그다음 b 를 더해준다.

 

그리고 만약 그 반복에서 계산한 사람의 수가 이전 사람이 가장 많을 떄의 사람수보다 크다면 해당 반복문에서 계산한 사람의 수를 가장 사람이 많을 때로 간주하고 max_train에 그 수를 넣는다.

반응형