강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

김민수님의 프로필 이미지
김민수

작성한 질문수

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

7. 소수의 개수(에라토스테네스 체)

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

작성

·

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` 문으로 종료될 때

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

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

김민수님의 프로필 이미지
김민수

작성한 질문수

질문하기