Algorithm/프로그래머스

[Python] 프로그래머스 Lv2 - 숫자 블록

떵호 2022. 6. 19. 21:32
728x90

🔗 문제 링크

 

코딩테스트 연습 - 숫자 블록

1 10 [0, 1, 1, 2, 1, 3, 1, 4, 3, 5]

programmers.co.kr

📂 분류

구현 수학

💡 풀이

이 문제는 설명을 잘 보고 풀어야 하는 문제이다.

설명을 보면 10,000,000번까지 규칙을 적용했다고 나와있다. 따라서 천만이 넘는 번호라면 1번 블록을 설치해야 한다.

 

접근 방식

  • 해당 숫자에 가장 큰 약수를 넣어준다.
  • 만약 소수라면 1을 넣어준다.

💻 코드

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

    for i in range(begin, end + 1):
        num = 0 if i == 1 else 1

        for j in range(2, int(i ** 0.5) + 1):
            if i % j == 0 and i // j < MAX:
                num = i // j
                break
        answer.append(num)

    return answer
728x90