Coding Test/코테 이론
구현 : 시뮬레이션과 완전 탐색 - 시각 문제
jjikky
2022. 10. 21. 15:41
반응형
문제 설명
정수 N이 입력되면 00시 00분 00초부터 N시 59분 59초까지의 모든 시각중에서 3이 하나라도 포함되는 모든 경우의 수를 구하는 프로그램을 작성하세요. |
# 입력 조건
- 첫째 줄에 정수 N이 주어진다. ( 0<=N<=23
# 출력 조건
- 00시 00분 00초부터 N시 59분 59초까지의 모든 시각중에서 3이 하나라도 포함되는 모든 경우의 수를 출력한다.
입력 예시 | 출력 예시 |
5 | 11475 |
문제 해결 아이디어
- 완전 탐색(Brute Focing) 유형 : 가능한 모든 경우의 수를 모두 검사해보는 탐색 방법
- 단순히 시각을 1씩 증가시키며 3이 하나라도 포함되어 있는지 확인
풀이1 : 삼중포문
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)
풀이2 : 좀 더 빠른 O(n)의 시간복잡도
n = int(input('n입력: '))
cnt=0
for i in range(1,(n*10000+5960)):
if (i//1000) %10>=6 : continue
if (i//10)%10>=6: continue
if (i%10)==3 :
cnt+=1
continue
elif (i//10)%10==3 :
cnt+=1
continue
elif (i//100)%10==3 :
cnt+=1
continue
elif (i//1000) %10==3 :
cnt+=1
continue
elif (i//10000) %10==3 :
cnt+=1
continue
print(cnt)
반응형