파일로부터 한줄 씩 읽기

파이썬 가장 일반적으로 파일을 한 줄씩 읽어들이는 방법은 다음과 같다. with open(‘filename.txt’, ‘r’) as f: for line in f: pass # line은 읽어들인 각 줄 하지만 이 방법은 파일을 한 번에 메모리로 읽어들인 다음, 한 줄씩 스캔한 결과를 돌려주기 때문에 수 기가짜리 로그 파일을 이런 식으로 처리하면 문제가 생긴다.

재귀호출과 피보나치 수열 탐구

재귀호출은 함수가 그 내부에서 자신을 다시 호출하는 것이다. 이는 언뜻 이상하게 보일 수 있고, 경우에 따라서는 의도치 않은 동작을 하게 할 수 있어서 일반적으로는 지양되는 방법이기는 하나, 대신에 코드가 짧아질 수 있고 실행 로직 자체가 어느 정도 제한된 경우라면 충분히 사용할 수 있다. 특히 하스켈과 같은 함수형 언어에서는 반복문을 돌리는 로직이 없기 때문에 재귀호출을 하는

[C/C++] 한 편으로 요약하는 포인터

한편으로 요약하는 포인터 C의 포인터는 사실 단순히 ‘메모리상의 주소를 저장하는 변수’의 개념인데, 실제로는 상당히 어렵다고 느끼는 경우가 많다. 왜냐면 메모리 주소를 사용하는 방식은 단순히 ‘간접적’으로 변수 값을 참조하는 것이라 “과연 이걸 어디다, 왜 쓴단 말인가”라고 생각해버리기 쉽기 때문에 실제로 어떻게 써야 하는지에 대한 감을 잡기 힘들기 때문이다. 이 글에서는 몇 개의 예제를 살펴보고 이를 통해

[C] 문자열 상수와 문자열 변수의 차이

문자열 상수와 문자열 변수 문자열을 초기화하는 다음 두 가지 방법은 거의 비슷해 보이지만 근본적으로 완전히 다른 동작을 한다. char *s1 = "abcdefg"; char s2[8] = "abcdefg"; 첫번째 s1은 프로그램이 로딩될 때 정적영역에 "abcdefg"를 저장한 다음 이 시작 주소를 s1에 대입한다. 문자열 포인터는 s1에는 나중에 다른 주소의 값을 대입할 수 있다. 즉, s1자체는 변경이 가능한 포인터