• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

리스트 슬라이싱을 이용한 에라토스테네스의 체 질문입니다.

21.11.14 21:33 작성 조회수 156

0

N = int(input())
prime = [0, 0, 1] + [1] * (N - 2)
for i in range(2, int(N ** 0.5) + 1):
    if prime[i]:
        prime[2 * i::i] = [0] * (N // i - 1)
print(sum(prime))

이런식으로 리스트 슬라이싱을 이용해서 한번에 처리해 주는 에라토스테네스의 체 구현 방법이 있었는데요.

이게 코드만 봐서 뭘 하려고 하는지 이해는 되는데 작동하는 이유가 리스트 슬라이싱을 해도 call by reference로 리스트 주소로 연결되어 있고 인덱스도 그대로 가져오기 때문이라고 이해하면 될까요??

 

 

답변 1

답변을 작성해보세요.

0

안녕하세요^^

네. 저도 잘 모르지만 그렇게 생각합니다.