그래서 다음과 같이 간단한 알고리즘을 생각할 수 있습니다.

    1 | 데이터를 읽어온다.

    2 | 모든 역의 데이터를 바탕으로 각 역의 비율(rate)을 계산한다.

    3 | 비율이 가장 높은 역을 찾는다.

    4 | 비율이 가장 높은 역이 어디인지, 그 비율이 얼마인지 출력한다.

    1은 구현이 되어있기 때문에 2~3부터 구현해보겠습니다. 먼저 각 역의 비율 데이터를 저장할 rate라는 변수와 rate의 최댓값을 저장할 mx라는 변수를 0으로 초기화합니다.

    그리고 유임 승차 인원(row[4])을 무임 승차 인원(row[6])으로 나눈 rate 값을 계산하고 rate 값이 최대일 때를 찾습니다. 이것은 앞에서도 많이 다뤘던 패턴이라 익숙할 것입니다.

    import csv
    f = open('subwayfee.csv')
    data = csv.reader(f)
    next(data)
    mx = 0
    rate = 0
    for row in data :
        for i in range(4,8) :
            row[i] = int(row[i])
        rate = row[4] / row[6]
        if rate > mx :
            mx = rate
    print(mx)

    TIP

    사실 rate 변수를 선언하고 초깃값을 넣지 않아도 오류가 발생하지 않지만, 변수를 선언하고 초기화하는 습관을 들이면 다른 프로그래밍 언어를 배울 때 어려움을 줄일 수 있어서 이 책에서는 가급적 변수를 선언합니다.

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.