더북(TheBook)

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

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

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