본문 바로가기

Computer Science/키워드 스터디3

[Memory Views and Copies in Numpy] Numpy 기본기. 개요 어떤 값을 의도적으로 덮어쓰고 싶을 때는 상관이 없지만, 덮어쓰고 싶지 않을 때 덮어쓰는 실수를 할 수도 있다. == view라는 개념을 잘 이해하지 못하면 우리가 가지고 있는 값을 덮어쓰는 실수를 저지를 수 있다. => view의 개념을 잘 이해함으로써 불필요한 copy를 피할 수 있고, 메모리 자원을 아끼는 데에 큰 도움이 된다. import numpy as np ary = np.array([[1,2,3], [4,5,6]]) first_row = ary[0] first_row += 1 print(first_row) print(ary[0]) 출력값을 보면, 분명 first_row에 ary[0]를 복사에서 더해줬는데, ary[0]에도 똑같이 연산이 수행되었음을 알 수 있다. ary[0]를 first.. 2024. 4. 16.
[EOF, End Of File] 파일 종료 EOF는 말 그대로, 파일의 끝(End of file)을 나타낸다. 파일에 더이상 읽어들일 데이터가 없다는 의미이며, 파일 뿐만 아니라, 입력의 끝을 알리는 신호로 사용된다. EOF의 입력 방법은 윈도우 : Crtl + Z Mac / Unix / Linux... : Crtl + D 이다. 예시 소스코드의 동작을 살펴보자. #include int main() { int a, b; while (true) { std::cin >> a >> b; if (std::cin.eof()) break; else std::cout 2024. 2. 16.
[에라토스테네스의 체] 소수를 구하는 알고리즘 소수란, " 1과 자신만을 약수로 가지는 수" 를 의미한다. 죠죠의 엔리코 푸치 신부는 마음의 평정을 유지하기 위해 소수를 셌다. 우리에게 평안을 가져다주는 소수, 어떻게 구할 것인가? 이번 글의 주제인 "에라토스테네스의 체" 라는 고대 그리스 수학자의 알고리즘에 대해 알아보기 전에, 간단한 알고리즘부터 살펴보자. # 1 범위 내의 모든 정수들 가지고 그보다 작은 수들로 나눠본다. 누구나 상상할 수 있고, 가장 간단한 방법. 범위 내의 모든 수를 가지고 소수인지를 판별하는 방법이다. 소스코드로 나타내면 이러하다. template bool Check(T input) { for (int i = 2; i 2024. 2. 11.