[문제]
정수 N이 입력되면 00시 00분 00초부터 N시 59분 59초까지의 모든 시각 중에서 3이 하나라도 포함되는 모든 경우의 수를 구하는 프로그램을 작성하시오. 예를 들어 1을 입력했을 때 다음은 3이 하나라도 포함되어 있으므로 세어야 하는 시각이다.
- 00시 00분 03초
- 00시 13분 00초
반면에 다음은 3이 하나도 포함되어 있지 않으므로 세면 안 되는 시각이다.
- 00시 02분 55초
- 01시 27분 45초
[입력 조건]
- 첫째 줄에 정수 N이 입력된다. (0≤ N ≤ 23)
[출력 조건]
- 00시 00분 00초부터 N시 59분 59초까지의 모든 시각 중에서 3이 하나라도 포함되는 모든 경우의 수를 출력한다.
<입력 예시>
5
<출력예시>
11475
[책 풀이]
🔎 아이디어
- for 문을 이용하여 문자열을 순회하여 3이 들어가 있는지 확인한다.
- 완전 탐색
하루는 24*60*60 = 86,400초이다.
00시 00분 00초부터 23시 59분 59초까지의 모든 경우의 수는 86,400 가지 이다.따라서 완전 탐색을 해도 시간 제한 2초안에 문제를 해결할 수 있다
🔎 코드
h = int(input())
num = 0
for i in range(h+1):
for j in range(60):
for k in range(60):
#문자열 안에 3이 들어있는지 확인. for문을 사용하여 문자열을 순회할 수 있다
if '3' in str(i)+str(j)+str(k):
num+=1
print(num)
'알고리즘 문제풀이 > 파이썬' 카테고리의 다른 글
[이코테-구현] 실전 - 게임 개발 (0) | 2022.06.17 |
---|---|
[이코테-구현] 실전 - 왕실의 나이트 (0) | 2022.06.17 |
[이코테-구현] 예제 - 상하좌우 (0) | 2022.06.17 |
[이코테-그리디] 기출 - 06.무지의 먹방 라이브 (0) | 2022.05.09 |
[이코테-그리디] 기출 - 05. 볼링공 고르기 (0) | 2022.05.08 |