본문 바로가기
프로그램

[파이썬] 문제 : 지하철 역별 시간대의 최대 하차 승객수 역명 찾기

by 오디세이99 2023. 4. 2.
728x90
반응형

subwaytime.csv
0.21MB

import csv

file = open('./subwaytime.csv')
data = csv.reader(file)

lst = []
for d in data:      # 데이터 리스트에 추가
    # print(d)
    lst.append(d)
file.close()

max_h18 = 0          # 18시간대의 승객수
max_h18_name = ''    # 18시간대의 역명
max_h19 = 0
max_h19_name = ''
max_h20 = 0
max_h20_name = ''
max_h21 = 0
max_h21_name = ''
max_h22 = 0
max_h22_name = ''
max_h1822 = 0
max_h1822_name = ''
# for i in range(len(lst[20:32])):      # 데이터가 수백개여서 눈으로 확인 어려움. 10개만 확인(검증시 사용)
for i in range(len(lst)):
    if i < 2: continue                 # 0,1 데이터 즉 처음 2개 row는 시간대와 승하차 정보로 제외
    name = lst[i][1] + '_' + lst[i][2] + '_' + lst[i][3]     # 역명을 호선+번호+역명으로 함
    a18 = int(lst[i][33].replace(',',''))      # 33 번째가 18시 하차 승객수
    a19 = int(lst[i][35].replace(',',''))
    a20 = int(lst[i][37].replace(',',''))
    a21 = int(lst[i][39].replace(',',''))
    a22 = int(lst[i][41].replace(',',''))
    if max_h18 < a18:                          # 현재 row의 18식간대의 승객수가 18시간대 max 승객수보다 그면
        max_h18 = a18                          # 18시간대 max 승객수 변수에 저장
        max_h18_name = name                    # max 일때 역명도 저장
    if max_h19 < a19:
        max_h19 = a19
        max_h19_name = name
    if max_h20 < a20:
        max_h20 = a20
        max_h20_name = name
    if max_h21 < a21:
        max_h21 = a21
        max_h21_name = name
    if max_h22 < a22:
        max_h22 = a22
        max_h22_name = name
    max_h = max(a18, a19, a20, a21, a22)
    if max_h1822 < max_h:
        max_h1822 = max_h
        max_h1822_name = name

    print(f"{a18:>10}, {a19:>10}, {a20:>10}, {a21:>10}, {a22:>10}, {max_h:>10} : {name:40}")
    
print('-'*30)
print('> 18시 :',max_h18_name)
print('> 19시 :',max_h19_name)
print('> 20시 :',max_h20_name)
print('> 21시 :',max_h21_name)
print('> 22시 :',max_h22_name)
print('> 18~22시 :',max_h1822_name)

728x90
반응형

댓글