문제
정수 N과 K가 입력되었을 때 00시 00분 00초부터 N시 59분 59초까지의 모든 시각 중에서 K가 하나라도 포함되는 모든 시각을 세는 프로그램을 작성하시오. 시각을 셀 때는 디지털 시계를 기준으로, 초 단위로만 시각을 구분한다.
예를 들어 K=3일 때, 다음의 시각들은 3이 하나 이상 포함되어 있으므로 세어야 하는 시각의 대표적인 예시이다.
- 23시 00분 00초
- 07시 08분 33초
반면에 다음의 시각들은 3이 하나도 포함되어 있지 않으므로 세면 안 되는 예시이다.
- 15시 02분 55초
- 18시 27분 45초
입력
첫째 줄에 정수 N과 K가 공백을 기준으로 구분되어 주어진다. (0≤N≤23, 0≤K≤9)
출력
00시 00분 00초부터 N시 59분 59초까지의 모든 시각 중에서 K가 하나라도 포함되는 시각들의 수를 출력한다.
예제 입력 1
5 3
예제 출력 1
11475
문제 이해
- 어떤 시간에 k가 있는지 판단하는 완전탐색 문제입니다.
- 시간이라는 특성을 이용한 문제로, 3중 루프를 통해 구할 수 있습니다.
- 이때, 시,분,초가 한자리 수 (05분, 09초 등) 인 경우 05,09 가 아닌 5,9로 생성되기 때문에 앞에 문자열 0을 붙여주는 작업을 추가해야 합니다. 이는 반복문을 통해 한자리 수 일 경우(10으로 나눈 몫이 0) 문자 0을 붙이도록 했습니다.
- 한자리 수가 아니라면 그냥 문자열로 변환하여 새 배열에 넣습니다.
코드
#백준 18312 시각
n,k = map(int,input().split())
count = 0
for h in range(n+1):
for m in range(60):
for s in range(60):
a = [h,m,s]
newa = []
for i in a:
if i//10 == 0:
i = '0'+str(i)
else:
i = str(i)
newa.append(i)
for i in newa:
if i.count(str(k)) > 0:
count += 1
break
print(count)
'알고리즘 풀이 > Python' 카테고리의 다른 글
[Python] 분해합 (백준 2231번 파이썬) (0) | 2023.09.18 |
---|---|
[Python] 블랙잭 (백준 2798 파이썬) (1) | 2023.09.18 |
[Python] 수학은 비대면강의입니다(백준 19532번 파이썬) (0) | 2023.09.18 |
[Python] 신입 사원 (백준 1946 파이썬) (0) | 2023.09.14 |
[Python] A→B(BFS) (백준 16953번 파이썬) (0) | 2023.09.13 |