iMTE

[백준18312번, 구현] 시각 - Python 본문

Python/Coding test

[백준18312번, 구현] 시각 - Python

Wonju Seo 2021. 9. 9. 13:39

타입 : 구현

문제 : 정수 N과 K가 입력되었을 때 00시 00분 00초부터 N시 59분 59초까지의 모든 시각 중에서 K가 하나라도 포함되는 모든 시각을 세는 프로그램을 작성하시오. 시각을 셀 때는 디지털 시계를 기준으로, 초 단위로만 시각을 구분한다.

예를 들어 K=3일 때, 다음의 시각들은 3이 하나 이상 포함되어 있으므로 세어야 하는 시각의 대표적인 예시이다.

  1. 23시 00분 00초
  2. 07시 08분 33초

반면에 다음의 시각들은 3이 하나도 포함되어 있지 않으므로 세면 안 되는 예시이다.

  1. 15시 02분 55초
  2. 18시 27분 45초

입력 : 첫째 줄에 정수 N K가 공백을 기준으로 구분되어 주어진다. (0≤N≤23, 0≤K≤9)

출력 : 00시 00분 00초부터 N시 59분 59초까지의 모든 시각 중에서 K가 하나라도 포함되는 시각들의 수를 출력한다.

n, k = map(int,input().split()) # N과 K를 입력 받음

count = 0 # count 는 0으로 초기화
for i in range(n+1): # 0 ~ n 까지의 시간을 담당
    if i < 10: # i가 10보다 작은 경우,
        pi = '0'+str(i) # string에 0을 붙이고 pi에 넣기, 예 05
    else: # 그렇지 않은 경우,
        pi = str(i) # string을 pi에 넣기
    for j in range(60): # 0~59 까지의 분을 담당
        if j < 10: # j가 10보다 작은 경우,
            pj = '0'+str(j) # string에 0을 붙이고 pj에 넣기, 예 05
        else: # 그렇지 않은 경우,
            pj = str(j) # string을 pj에 넣기
        for t in range(60): # 0~59 까지의 초를 담당
            if t < 10: # t가 10보다 작은 경우,
                pt = '0'+str(t) # string에 0을 붙이고 pt에 넣기, 예 05
            else: # 그렇지 않은 경우,
                pt = str(t) # string을 pt에 넣기
            if str(k) in pi + pj +pt: # 최종적으로 k가 string pi pj pt 에 있는지 확인,
                count += 1 # 있다면 count 를 1 증가시킴

print(count) # 결과 출력

실행 결과 :

5 3
11475
Comments