n = int(input())
count = 0
for x in range(n+1):
for y in range(61):
for z in range(61):
time = "x"+"y"+"z"
if "3" in time:
count += 1
print(count)
이 코드는 작동이 안된다. 근데 왜 안되는지 모르겠음;
이 문제는 가능한 모든 시각의 경우를 하나씩 모두 세서 풀 수 있는 문제이다.
(일일이 모두 센다는 점에서 전형적인 완전탐색(Brute Forcing)유형으로 구현 문제이다.)
하루는 86,400초이므로, 최대 조건은 86,400가지 이다. 컴퓨터가 충분히 빠르게 찾을 수 있는 범위이다.
파이썬은 1초에 2000만번 수행을 연산 가능하다고 생각하셈
따라서 단순히 시각을 1식 증가시키면서 3이 하나라도 포함되어 있는지를 확인하면 된다!!
완전탐색유형 : 가능한 경우의 수를 모두 검사해보는 탐색 방법
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)
분과 초를 range(61)로 설정
-> 0~59분/초 이렇게 해야하는데 순간 60을 포함해야 하는줄 알았음
time = "x"+"y"+"z" 바보 같은 코드
-> ""만 치면 str로 바뀌는줄 알았음ㅋㅋㅋㅋㅋㅋㅋㅋ 아니 왜 그랬지...? 공부가 하기 싫었나..?
항상 틀에 박힌 생각을 하려고 하는게 큰 문제인것 같다. 주제가 "시간"이기 때문에 무조건적으로 00시00분00초 형태로든 어떻게든 "시간"을 표현하려고 해서 어렵게 다가왔다. '파이썬 시간'으로 서치를 해봤는데 어떻게 해야할지 감이 안잡혔었다. 생각을 계속 하다보니, 굳이 인간이 표현하는 방식대로 시간을 설정해야 하나?? 라는 생각이 들었고, 시,분,초를 각각의 숫자로 두어 3개의 숫자를 합쳐서(더하는거 말고) 그 안에 3이 있는지 확인하면 되겠다는 깨달음에 도달!!!