
책 "
이것이 코딩테스트다 with 파이썬" 연습
💡 문제
정수 N이 입력되면 00시00분00초 부터 N시 59분 59초까지의 모든 시각 중에서 3이 하나라도 포함되는 모든 정수의 수를 구하는 프로그램을 작성하시오. 예를 들어 1을 입력했을 때 다음은 3이 하나라도 포함되어 있으므로 세어야 하는 시각이다. - 00시 00분 03초 - 00시 13분 30초 반면에 다음은 3이 하나도 포함되어 있지 않으므로 세면 안되는 시각이다. - 00시 02분 55초 - 00시 27분 45초
📌 입력 조건
- 첫째 줄에 정수 N이 입력된다. (0 <= N <= 23)
🔐 출력 조건
- 00시 00분 00초 부터 N시 59분 59초까지의 모든 시각 중에서 3이 하나라도 포함되는 모든 경우의 수를 출력한다. ex) 5 출력: 11475
가능한 개수를 셌을때, 적다면 간단하게 짜기 !!
이 문제는 모든 가능성을 다 합쳐도 86,400개 라는 적은 숫자여서
일일히 for문을 돌려 계산해도 됐다.
n = int(input())
ans = 0
for i in range(n+1):
for j in range(60):
for l in range (60):
if '3' in str(i) + str(j) + str(l):
ans +=1
print(ans)
3중 for 문을 통해서 계산 하면 된다.
처음에는 or을 썼다가, 값이 너무 크게 나와서 당황했다. (진정한 감자🥔)
하나라도 있으면 count이니 중복을 제외해야 해서 +로 연결지어야 했다.