정수 N이 입력되면 00시 00분 00초부터 N시 59분 59초까지의 모든 시각 중에서 3이 하나라도 포함되는
모든 경우의 수를 구하는 프로그램을 작성하라. 예를 들어 1을 입력했을 때 다음은 3이 하나라도 포함되어 있으므로 세어야 하는 시각이다
- 00시 00분 03초
- 00시 13분 30초
반면에 다음은 3이 하나도 포함되어 있지 않으므로 세면 안 되는 시각이다
- 00시 02분 55초
- 01시 27분 45초
[문제]
[정답]
N = int(input())
cnt = 0
# 시
for h in range(N+1):
# 분
for m in range(60):
# 초
for s in range(60):
# 매 시각 안에 '3'이 포함되어 있다면 카운트 증가
if '3' in str(h) + str(m) + str(s):
cnt +=1
print(cnt)
[해설]
이 문제는 모든 시각의 경우를 하나씩 모두 세서 쉽게 풀 수 있는 문제이다. 하루는 86,400초(24 x 60 x60)로, 00시 00분 00 초부터
23시 59분 59초까지의 모든 경우는 86,400가지 밖에 존재하지 않는다. 그래서, 완전탐색 유형이다
'이것이 코딩테스트다 with 파이썬 > 구현' 카테고리의 다른 글
문자열 재정렬 (0) | 2023.02.20 |
---|---|
왕실의 나이트 (0) | 2023.02.20 |
상하좌우 (0) | 2023.02.20 |