Skip to content

1340 연도 진행바

Jeon Wooje edited this page Apr 7, 2020 · 3 revisions

연, 월, 일, 시, 분을 입력받아 전체 해에서 지나간 시간이 몇 %를 차지하는지 구하는 문제입니다.

전체에서 부분이 차지하는 비율은 (부분) / (전체)이고, 최소 단위가 분이므로 모두 분 단위로 계산해야 합니다.

지나간 달에 대응하는 일 수를 테이블로 만들면 쉽게 달을 날로 바꿀 수 있을 거라 생각했습니다.

month_map = {
	"January": 0,
	"February": 31,
	"March": 31 + february_days,
	"April": 31 + february_days + 31,
	"May": 31 + february_days + 31 + 30,
	"June": 31 + february_days + 31 + 30 + 31,
	"July": 31 + february_days + 31 + 30 + 31 + 30,
	"August": 31 + february_days + 31 + 30 + 31 + 30 + 31,
	"September": 31 + february_days + 31 + 30 + 31 + 30 + 31 + 31,
	"October": 31 + february_days + 31 + 30 + 31 + 30 + 31 + 31 + 30,
	"November": 31 + february_days + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31,
	"December": 31 + february_days + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30,
}

february_days는 윤년 여부에 따라 28일, 29일로 바뀌기 때문에 해를 통해 계산하기로 했습니다.

이번 달이 January인 경우는 아직 한 달이 지나지 않은 것이므로 0부터 시작해야 합니다. 일 또한 1부터 세기 때문에 1을 빼 주어야 합니다.

일, 시의 경우는 1일 = 24시간, 1시간 = 60분이므로 { (일) * 24 + (시간) } * 60 으로 간단히 분으로 변환할 수 있습니다.

분으로 주어진 시간을 변환하고 나니, 전체 일 수를 분으로 변환하여 백분율을 구할 수 있었습니다.