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