[백준 17614] 369 파이썬

syEON·2023년 10월 25일
0

알고리즘

목록 보기
1/4

모두가 아는 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)

0개의 댓글