모두가 아는 369게임이다.
입력: 숫자
출력: 1부터 입력한 숫자까지 3, 6, 9가 들어간 경우의 합
🎃 33, 36에서는 각 각 두 번 박수를 쳐야한다.
<실패작>
import sys
input = sys.stdin.readline
N = int(input())
clap=0
for i in range(1,N+1):
for j in list(str(i)):
if '3' in j:
clap+=1
if '6' in j:
clap+=1
if '9' in j:
clap+=1
print(clap)
# 시간초과: 52점
#방법2
N = int(input())
check = '369'
re = 0
for i in range(1, N+1):
for c in check:
re += str(i).count(c)
print(re)
결과: 시간초과 : 52점
<성공작>
3/6/9가 숫자n 에 몇번이 들어가는지
각 각 숫자가 3/6/9 인지 확인 하는 것보다 훨씬 반복횟수 낮아짐...
=> 주어진 조건이 있을 때 한번 더 생각해보자!!
str(i) 를 for문 안에서 수행하지 않기!!!
N = int(input())
check = '369'
re = 0
for i in range(1, N+1):
str_num = str(i)
for c in check:
re += str_num.count(c)
print(re)