본문 바로가기
백준/정렬, 탐색

[백준] #18312 시각 (python)

by 똥먹는낙타 2022. 7. 12.
728x90
반응형

18312번: 시각 (acmicpc.net)

 

18312번: 시각

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

www.acmicpc.net

문제

정수 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가 하나라도 포함되는 시각들의 수를 출력한다.

예제 입력 1 

5 3

예제 출력 1 

11475

 

✔️ Code

n, k = map(int, input().split())
k = str(k)

cnt = 0

for i in range(0, n+1):
    if i < 10:
        i = '0' + str(i)
    for j in range(0, 60):
        if j < 10:
            j = '0' + str(j)
        for m in range(0, 60):
            if m < 10:
                m = '0' + str(m)
            if str(k) in (str(i) + str(j) + str(m)):
                cnt += 1

print(cnt)

 

✏️ Comment

처음에 그냥 01시 01분 등 앞에 붙는 0을 고려하지 않고 숫자로만 풀었다가 0의 수를 세는 경우를 고려하지 않아서 답이 틀렸다. str 형태로 바꿔주고 시,분,초가 각각 10미만의 수가 나올 때에는 앞에 0이 붙도록 해야 세야 하는 숫자가 0일 때의 경우도 올바르게 셀 수 있다.

728x90
반응형

댓글