7082 : 운동 기록 분석
•시간제한: 1.000 S
•메모리제한: 256 MB
•제출: 0
•통과: 0
•만든사람: suakii
문제 설명
BFStudy 헬스 앱은 사용자의 운동 기록을 분석하는 기능을 제공합니다.
날짜별 운동 기록이 주어질 때 다음을 분석하여 출력하십시오.
- 총 운동 일수 (중복 날짜는 하루로 계산)
- 총 운동 시간(분)과 총 칼로리
- 가장 많이 기록된 운동 종류 (동점 시 먼저 등장한 순서)
- 최장 연속 운동 일수 (날짜 기준)
- 주(월~일 기준)별 평균 운동 시간: 해당 주에 운동한 날의 총 시간 / 운동한 날 수 (소수점 첫째 자리)
[제약 조건]
• 기록 수 $: le N le 1{,}000$
날짜별 운동 기록이 주어질 때 다음을 분석하여 출력하십시오.
- 총 운동 일수 (중복 날짜는 하루로 계산)
- 총 운동 시간(분)과 총 칼로리
- 가장 많이 기록된 운동 종류 (동점 시 먼저 등장한 순서)
- 최장 연속 운동 일수 (날짜 기준)
- 주(월~일 기준)별 평균 운동 시간: 해당 주에 운동한 날의 총 시간 / 운동한 날 수 (소수점 첫째 자리)
[제약 조건]
• 기록 수 $: le N le 1{,}000$
입력 설명
첫째 줄에 기록 수 N이 주어집니다. (1 ≤ N ≤ 1,000)
이후 N개의 줄에
날짜는 오름차순으로 주어지지 않을 수 있습니다.
이후 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의
주 번호는
Python의
datetime.date를 사용하면 (date2 - date1).days == 1로 쉽게 확인 가능합니다.주 번호는
date.isocalendar()[1]로 ISO 주 번호를 구할 수 있습니다.