코드 작성하기
알고리즘을 바탕으로 코드를 작성해 봅시다. 하위 목표 1의 알고리즘과 비슷하기 때문에 알고리즘을 코드로 옮기기는 어렵지 않습니다. 다음 표의 오른쪽 부분을 가리고 직접 작성해 본 후 책과 비교해 보세요. 참고로 2019년 12월의 주중은 총 22일, 주말은 총 9일입니다.
<알고리즘>
1. 주중 시간대별 생활인구를 저장할 리스트(weekday)와 주말 시간대별 생활인구를 저장할 리스트(weekend)를 길이 24로 만들고 초깃값 0 저장하기
2. 인구 데이터(data)의 첫 행부터 마지막 행까지 반복하기
2.1 사용자가 입력한 행정동의 행정동코드(dong_code)와 인구 데이터(data)의 행정동코드(열 인덱스 [2])가 같다면
2.1.1 해당 행의 시간대(time)와 총생활인구수(p), 기준일ID의 연도(year), 월(mon), 일(day)을 각각 변수에 저장하기
2.1.2 과정 2.1.1에서 저장한 연도(year), 월(mon), 일(day)을 datetime.date().weekday()에 넣어 주중/주말 구분하기
2.1.3 주중이면 주중 리스트(weekday[time])에 총생활인구수(p), 주말이면 주말 리스트(weekend[time])에 총생활인구수(p) 더하기
3. 반복이 끝나면 2019년 12월의 주중 일수(weekday_cnt)와 주말 일수(weekend_cnt)를 저장할 변수를 만들고 초깃값 0 저장하기
4. 2019년 12월의 일수만큼 반복하기
4.1 주중이면 주중 일수(weekday_cnt)에 1, 주말이면 주말 일수(weekend_cnt)에 1 더하기
5. 주중 리스트(weekday)의 각 요소를 주중 일수(weekday_cnt)로, 주말 리스트(weekend)의 각 요소를 주말 일수(weekend_cnt)로 나누어 주중/주말 평균인구 구하기
6. 완성된 weekday와 weekend 리스트로 주중/주말 시간대별 평균인구 그래프 그리기