[이것이 코딩 테스트다 with 파이썬] 구현 - 시각

Sujin Lee·2022년 5월 25일
0

코딩테스트

목록 보기
50/172
post-thumbnail
post-custom-banner

문제

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

풀이

접근 방법

  • 가능한 경우의 수를 모두 검사해보는 완전 탐색 유형
  • 확인(탐색)해야 할 전체 데이터의 개수가 100만 개 이하일 때 완전 탐색 사용이 적절
  • 처음에 작성 했던 코드: 문자열로 비교를 안했는데
import sys
N = int(sys.stdin.readline())

cnt = 0
for i in range(N+1):
  for j in range(60):
    for z in range(60):
      if 3 in (i,j,z):
        cnt += 1

print(cnt)

# i,j z
5 53 3
5 54 3
5 55 3
5 56 3
5 57 3
5 58 3
5 59 3
  • 문자열로 비교해야함
import sys
N = int(sys.stdin.readline())

cnt = 0
for i in range(N+1):
  for j in range(60):
    for z in range(60):
      if '3' in str(i)+str(j)+str(z):
        print(i,j,z)
        cnt += 1

print(cnt)
# i,j,z
5 59 3
5 59 13
5 59 23
5 59 30
5 59 31
5 59 32
5 59 33
5 59 34
5 59 35
5 59 36
5 59 37
5 59 38
5 59 39
5 59 43
5 59 53
profile
공부한 내용을 기록하는 공간입니다. 📝
post-custom-banner

0개의 댓글