honey_pot
[구현] 4 - 2 시각 본문
정수 N이 입력되면 00시 00분 00초부터 N시 59분 59초까지의 모든 시각 중에서 3이 하나라도 포함되는 모든 경우의 수를 구하는 프로그램을 작성하라
입력 조건
- 첫째 줄에 정수 N이 입력된다 .(0<=N<=23)
출력 조건
- 00시 00분 00초부터 N시 59분 59초까지의 모든 시각 중에서 3이 하나라도 포함되는 모든 경우이 수를 출력한다.
단순히 1씩 증가시키면서 3이 하나라도 있는지 확인한다.
전체 시, 분, 초에 대한 경우는 24 x 60 x 60 이며 3중 반복문을 통해 계산할 수 있다.
이러한 유형은 완전 탐색(Brute Forcing) 유형으로 탐색해야할 전체 데이터의 개수가 100만 개 이하일 때 사용하면 적절하다.
# 시 h 입력 받기
h = int(input())
count = 0
for i in range(h + 1): # 시
for j in range (60): # 분
for k in range(60): # 초
# 매 시각 안에 '3'이 포함되어 있다면 카운트 증가
if '3' in str(i) + str(j) + str(k):
count += 1
print(count)
매 시각을 문자열로 바꾼 다음 문자열에 '3'이 포함됐는지 검사한다.
예를 들어 03시 20분 35초일 때를 확인한다면, 이를 '032035'로 만들어서 3이 '032035'에 포함되어 있는지를 체크하는 방식을 이용한다.
'이것이 코딩테스트다' 카테고리의 다른 글
[구현] 4 - 4 게임 개발 (0) | 2021.06.11 |
---|---|
[구현] 4 - 3 왕실의 나이트 (0) | 2021.06.10 |
[구현] 4 - 1 상하좌우 (0) | 2021.06.10 |
[그리디] 3 - 4 1이 될 때까지 (0) | 2021.06.10 |
[그리디] 3 - 3 숫자 카드 게임 (0) | 2021.06.10 |
Comments