2-8. 이코테 - 구현 - 시각

RostoryT·2022년 5월 22일
0

This is Coding Test

목록 보기
8/10



count를 사용하면 어떨까
if count(3) >= 1 이면 cnt += 1

~>아니 시간복잡도 너무 커서 시간줄이는 법 없나 해보려고 30분 고민했는데
동빈나 솔루션 코드랑 똑같음 ㅡㅡ


''' 1차적으로 푼 - 시간복잡도 O(n^3)인데 더 빨리하는 법 없나? '''
import time

def sol(n):
    cnt = 0
    
    for i in range(n+1):
        for j in range(60):
            for z in range(60):
                tmp = str(i) + str(j) + str(z)
                if tmp.count('3') >= 1:    cnt += 1
    
    return cnt

start = time.time()
print(sol(int(input())))
print("time : ", time.time() - start)

''' 동빈나 솔루션 - in 사용 '''
import time

def sol(n):
    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):    cnt += 1
    
    return cnt

start = time.time()
print(sol(int(input())))
print("time : ", time.time() - start)

profile
Do My Best

0개의 댓글