문제 분류 수업 진도 대회 채점현황 순위 질문게시판
게임
스도쿠 타이핑 리듬 타자게임 타이핑 테트리스 타이핑 인베이더 타이핑 지뢰찾기 8192 공룡게임 타이핑 플래피버드 랭킹
로그인

7082 : 운동 기록 분석

•시간제한: 1.000 S •메모리제한: 256 MB •제출: 0 •통과: 0 •만든사람: suakii

7082 : 운동 기록 분석

시간 1.000s · 메모리 256MB · 제출 0 · 정답 0

문제 설명

BFStudy 헬스 앱은 사용자의 운동 기록을 분석하는 기능을 제공합니다.
날짜별 운동 기록이 주어질 때 다음을 분석하여 출력하십시오.
- 총 운동 일수 (중복 날짜는 하루로 계산)
- 총 운동 시간(분)과 총 칼로리
- 가장 많이 기록된 운동 종류 (동점 시 먼저 등장한 순서)
- 최장 연속 운동 일수 (날짜 기준)
- 주(월~일 기준)별 평균 운동 시간: 해당 주에 운동한 날의 총 시간 / 운동한 날 수 (소수점 첫째 자리)

[제약 조건]
• 기록 수 $: le N le 1{,}000$

입력 설명

첫째 줄에 기록 수 N이 주어집니다. (1 ≤ N ≤ 1,000)
이후 N개의 줄에 날짜(YYYY-MM-DD) 운동종류 시간(분) 칼로리가 주어집니다.
날짜는 오름차순으로 주어지지 않을 수 있습니다.

출력 설명

분석 결과를 아래 형식으로 출력합니다.
총 운동 일수: N일
총 운동 시간: N분
총 칼로리: Nkcal
주요 운동: 종류
최장 연속: N일
주별 평균 운동 시간:
  YYYY-WNN: X.X분 (해당 주별로 한 줄씩)

입력 예시
COPY
복사되었습니다!

5
2025-01-01 running 30 250
2025-01-02 cycling 45 350
2025-01-03 running 60 500
2025-01-05 swimming 30 200
2025-01-06 running 20 150

출력 예시
COPY
복사되었습니다!

총 운동 일수: 5일
총 운동 시간: 185분
총 칼로리: 1450kcal
주요 운동: running
최장 연속: 3일
주별 평균 운동 시간:
  2025-W01: 41.2분
  2025-W02: 20.0분

도움

연속 일수 계산 시 날짜를 정렬한 뒤 이전 날짜와의 차이가 1일이면 연속으로 판정합니다.
Python의 datetime.date를 사용하면 (date2 - date1).days == 1로 쉽게 확인 가능합니다.
주 번호는 date.isocalendar()[1]로 ISO 주 번호를 구할 수 있습니다.

출처/분류

NOTICE  —  BFStudy OJ 정보샘
애들아, 문제 많이 풀고 게임 잠깐 하는거지?
— 정보샘