알고리즘 문제풀이/파이썬

[이코테-구현] 예제 - 시각

Ella_K 2022. 6. 17. 15:47

[문제]

정수 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)

 


출처: 이것이 취업을 위한 코딩 테스트다 with 파이썬