[백준/파이썬] 14625번 풀이

업데이트:



문제 정보


풀이

문제

자취 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이 보이는 시간이 몇 분인지 세어보려고 한다. …를 만족하도록 로직을 구성하는 것입니다.

코드는 입력을 파싱한 뒤 조건 분기와 계산을 순서대로 수행하고, 문제에서 요구한 형식으로 결과를 출력합니다.

경계값과 예외 케이스도 함께 고려해 오답이 나기 쉬운 상황을 방지합니다.



다음 읽을거리

관련 허브 페이지에서 같은 주제의 글을 이어서 확인할 수 있습니다.

댓글남기기