[백준/파이썬] 14625번 풀이
업데이트:
문제 정보
- 문제 출처: 백준 온라인 저지
- 문제 링크: 14625번 문제
- 문제풀이 코드 GitHub 링크
- 제출 언어: Python 3
풀이
문제
자취 1년 차인 지민이는 냉동식품을 사랑한다.
오늘도 어김없이 전자레인지에 냉동식품을 돌리던 지민이는 음식이 데워지길 기다리는 것이 너무 지루한 탓에 전자레인지에 HH:MM의 형태로 표시되는 시간 중 숫자 N이 보이는 시간이 몇 분인지 세어보려고 한다.
음식이 데워지는 시간 사이에 숫자 N이 나오는 시간이 총 몇 개인지 알려주는 프로그램을 작성하시오.
입력 요약
첫째 줄과 두 번째 줄에 시작시간과 종료시간이 시 H(0 ≤ H ≤ 23)와 분 M(0 ≤ M ≤ 59)이 정수로 빈칸을 사이에 두고 주어진다. 세 번째 줄에는 몇 분이 나오는지 알고 싶은 숫자 N(0 ≤ N ≤ 9)이 주어진다.
(23:50~01:30과 같이 중간에 날짜가 바뀌는 입력은 주어지지 않는다.)
출력 요약
시작시간에서부터 종료시간까지 숫자 N이 나오는 시간은 총 몇 개인지 출력한다.
코드
a,b=map(int,input().split())
c,d=map(int,input().split())
n=input()
r=0
def q(l):
try:
l.index(n)
return 1
except: return 0
while a!=c or b!=d:
r+=q('%02d%02d'%(a,b))
b+=1
if b>59:
b%=60
a+=1
r+=q('%02d%02d'%(a,b))
print(r)
설명
핵심은 구현 관점에서 자취 1년 차인 지민이는 냉동식품을 사랑한다.
오늘도 어김없이 전자레인지에 냉동식품을 돌리던 지민이는 음식이 데워지길 기다리는 것이 너무 지루한 탓에 전자레인지에 HH:MM의 형태로 표시되는 시간 중 숫자 N이 보이는 시간이 몇 분인지 세어보려고 한다. …를 만족하도록 로직을 구성하는 것입니다.
코드는 입력을 파싱한 뒤 조건 분기와 계산을 순서대로 수행하고, 문제에서 요구한 형식으로 결과를 출력합니다.
경계값과 예외 케이스도 함께 고려해 오답이 나기 쉬운 상황을 방지합니다.
댓글남기기