← 목록

LMS 이벤트 로그 전처리

Lv.5 Python stdin/stdout
문제 설명
BDAI LMS에서는 다음과 같은 이벤트 로그가 발생합니다.

`user_id, event_name, duration`

다음 로그 데이터에는 정상 데이터뿐 아니라 잘못된 데이터도 포함되어 있습니다.

잘못된 데이터는 제외하면서 정상 로그를 한 건씩 처리하고, 최종적으로 사용자별 총 이용 시간을 계산하세요.

조건
extract_logs(raw_logs)는 다음 조건을 만족해야 합니다.

- 로그를 , 기준으로 분리합니다.
- 항목의 개수가 3개가 아니면 해당 로그를 제외합니다.
- duration은 int로 변환합니다.
- 숫자로 변환할 수 없는 경우 해당 로그를 제외합니다.
- duration이 음수이면 해당 로그를 제외합니다.
- 잘못된 데이터 때문에 프로그램 전체가 종료되어서는 안 됩니다.
- 정상 데이터는 리스트에 모아서 반환하지 않고 yield를 사용하여 한 건씩 반환해야 합니다.
- 정상 로그는 (user_id, event_name, duration) 형태로 반환합니다.

summarize_logs(log_stream)은 정상 로그를 받아 사용자별로 다음 정보를 계산합니다.

- events: 정상 이벤트 개수
- total_duration: 총 이용 시간

출력

{'U1001': {'events': 2, 'total_duration': 150}, 'U1002': {'events': 1, 'total_duration': 10}}

솔루션 Python
실행 결과
실행 또는 제출하면 결과가 여기에 표시됩니다.