반응형
[문제]
정수 N이 입력되면 00시 00분 00초부터 N시 59분 59초 까지의 모든 시각 중에서 3이 하나라도 포함되는 모든 경우의 수를 구하는 프로그램을 작성하시오. 예를 들어 1을 입력했을 때 다음은 3이 하나라도 포함되어 있으므로 세어야하는 시각이다.
- 00시 00분 03초
- 00시 13분 30초
반면에 다음은 3이 하나도 포함되어 있지 않으므로 세면 안 되는 시각이다.
- 00시 02분 55초
- 01시 27분 45초
[입력 조건]
- 첫째 줄에 상수 N이 입력된다. (0 <= N <= 23)
[출력 조건]
- 00시 00분 00초부터 N시 59분 59초까지의 모든 시각 중에서 3이 하나라도 포함되는 모든 경우의 수를 출력한다.
[입력 예시]
5
[출력 예시]
11475
[문제 해설]
- 모든 시각의 경우를 하나씩 모두 세서 푸는 문제. 하루는 86,400초이기 때문에, 00시 00분 00초부터 23시 59분 59초까지의 모든 경우는 86,400가지밖에 없다.
- 따라서, 시각을 1씩 증가시키면서 3이 하나라도 포함되어있는지 확인하면 된다.
- 시, 분, 초에 대한 경우의 수는 24 x 60 x 60이며 3중 반복문을 이용해 계산 가능하다.
[소스코드]
- 매 시각을 문자열로 바꾼 다음 문자열 '3'이 포함됐는지 검사한다.
- 00시 00분 00초부터 23시 59분 59초까지 1초씩 늘리며 시, 분, 초를 문자열 자료형으로 변환하여 합친다.
- 예를들어 03시 20분 35초일때를 확인한다면 '032035'로 만들어서 '3'이 '032035'에 포함되는지 확인함.
h = int(input())
count = 0
for i in range(h + 1):
for j in range(60):
for k in range(60):
if '3' in str(i) + str(j) + str(k):
count += 1
print(count)
반응형
'알고리즘 Study > 이코테' 카테고리의 다른 글
| [04구현] 실전문제-게임 개발(p118~p121) (0) | 2025.11.13 |
|---|---|
| [04구현] 실전문제-왕실의 나이트(p115~p117) (0) | 2025.11.11 |
| [04구현] 4-1 상하좌우(p110~112) (0) | 2025.11.10 |
| [03그리디] 3-4 1이 될 때까지(p99~p102) (0) | 2025.10.24 |
| [03그리디] 3-3 숫자 카드 게임(p96~p98) (0) | 2025.10.24 |