관리 메뉴

솜씨좋은장씨

[BaekJoon] 2455번 : 지능형 기차 (Python) 본문

Programming/코딩 1일 1문제

[BaekJoon] 2455번 : 지능형 기차 (Python)

솜씨좋은장씨 2022. 1. 1. 01:01
728x90
반응형

코딩 1일 1문제! 오늘의 문제는 백준의 지능형 기차 입니다.

 

2455번: 지능형 기차

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

www.acmicpc.net

👨🏻‍💻 문제 풀이

이 문제에서 입력으로 받는 정보는 총 4개의 역에서 각각 내리고 탄 사람의 수 입니다.

이 값을 가지고 구해야하는 것은 각 역을 지나고 났을 때 기차에 남아있는 탑승인원 정보 중 최대값 입니다.

예제 입력을 보고 정보를 입력 받는 코드를 작성합니다.

bording_infos = []
for _ in range(4):
    bording_info = list(map(int, input().split()))
    bording_infos.append(bording_info)

각 행 마다 공백을 기준으로 하차인원, 탑승인원을 나타내는 숫자 2개를 입력 받으므로 

입력받은 값 input()을 공백기준으로 .split() 한 뒤 이 값이 문자열이므로 정수로 바꾸어주기 위해 map(int, )를 활용해

각 값을 정수로 바꾸어준 뒤 list 로 묶어 list로 형변환 합니다.

그러면 "0 32" -> [0, 32] 로 값이 바뀌게 됩니다.

이 값들을 bording_infos 리스트에 모아 둡니다.

passengers = [bording_infos[0][1]]

첫 번째 역에서는 내린사람은 없고 탄 사람만 있으므로 

탑승인원 정보를 모아두는 passengers 리스트에 입력받은 정보 중 첫번째 역의 탄 사람 수 정보를 넣어줍니다.

for bording_info in bording_infos[1:]:
    passenger = passengers[-1] - bording_info[0] + bording_info[1]
        
    passengers.append(passenger)

그 다음 두번째 역의 탑승정보 부터 꺼내와서 계산을 합니다.

현재 열차 탑승인원  - 이번 역에서 내리는 사람 + 이번 역에서 타는 사람

이렇게 계산한 값을 passengers 리스트에 넣어줍니다.

max(passengers)

마지막으로 가장 탑승인원이 많았던 시점을 max로 가져옵니다.

 

전체 코드는 아래를 참고해주세요!

👨🏻‍💻 코드 ( Solution )

def intelligent_train(bording_infos):
    passengers = [bording_infos[0][1]]
    
    for bording_info in bording_infos[1:]:
        passenger = passengers[-1] - bording_info[0] + bording_info[1]
        
        passengers.append(passenger)
        
    return max(passengers)

if __name__ == "__main__":
    bording_infos = []
    for _ in range(4):
        bording_info = list(map(int, input().split()))
        bording_infos.append(bording_info)
        
    print(intelligent_train(bording_infos))
 

GitHub - SOMJANG/CODINGTEST_PRACTICE: 1일 1문제 since 2020.02.07

1일 1문제 since 2020.02.07. Contribute to SOMJANG/CODINGTEST_PRACTICE development by creating an account on GitHub.

github.com

Comments