[프로그래머스 Lv2] 숫자 블록(python)

이진규·2022년 7월 6일
1

프로그래머스(PYTHON)

목록 보기
55/64

문제

https://programmers.co.kr/learn/courses/30/lessons/12923

나의 코드

"""

"""

import math

def solution(begin, end):
    
    answer = []

    for i in range(begin, end+1): # 주어진 블록 길이 만큼만 반복문을 돌려 구하면 됨.
        if i == 1:
            answer.append(0)
            continue
        
        n = int(math.sqrt(i))
        for j in range(2, n+1): # 소수 구하기
            if i % j == 0:
                tmp = i // j
                if tmp > 10 ** 7: # ★ 도로 길이 > 블록 길이 이므로 효율성 통과를 위해 중요한 부분. 자세한 내용은 참고자료
                    continue
                else:
                    answer.append(i // j)
                    break
        else:
            answer.append(1)
            
    return answer
    

설명

쉬운 문제인줄 알았는데 제한 사항에도 도로길이 > 블록길이 라는 힌트도 없어서 효율성 테스트 다 틀리고 난감했던 문제

참고 자료

https://deok2kim.tistory.com/123

profile
항상 궁금해하고 공부하고 기록하자.

0개의 댓글