인프런 커뮤니티 질문&답변
리스트 슬라이싱을 이용한 에라토스테네스의 체 질문입니다.
작성
·
268
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로 리스트 주소로 연결되어 있고 인덱스도 그대로 가져오기 때문이라고 이해하면 될까요??
퀴즈
파이썬 `for` 루프와 함께 사용되는 `else` 블록은 언제 실행될까요?
`for` 루프가 시작되기 전
`for` 루프가 `break` 없이 정상적으로 완료될 때
`for` 루프 내부에서 오류가 발생할 때
`for` 루프가 `break` 문으로 종료될 때





