Python3의 range()는 메모리를 많이 차지하는가?
Python에서 일정한 규칙의 요소를 참조하기 위해 range()를 사용하는 경우가 자주 있다. >>> for i in range(5): ... print(i) ... 0 1 2 3 4 이는 다음과 같은 코드와 동일한 결과를 가진다. 그렇다면 range(5)는 [0, 1, 2, 3, 4]와 동일하다고 할 수 있을까? >>> for i in [0, 1, 2, 3, 4]: ... print(i) ... 0 1 2 3 4 결론부터 말하면 그렇지 않다. range(start, stop, step) 함수는 단순히 start부터 step씩 증가하며 stop 전까지의 값을 반환하는 함수가 아니고 파이썬에서 정의되어 있는 클래스의 생성자다. 이 생성자 함수는 불변 순서 타입(immutable sequence type)..
더보기
배열을 이용한 기존 데이터형을 초과하는 크기의 수 출력/연산(피보나치)
Java에서 long 자료형은 2^64 의 크기를 가진다. 즉 양수 9,223,372,036,854,775,807부터 -9,223,372,036,854,775,808까지 출력할 수 있다는 얘기가 된다. C, C++에서도 큰 자료형들은 이와 비슷하거나 미치지 못한다. name expresses value* CHAR_BIT Number of bits in a char object (byte) 8 or greater* SCHAR_MIN Minimum value for an object of type signed char -127 (-27+1) or less* SCHAR_MAX Maximum value for an object of type signed char 127 (27-1) or greater* UCHA..
더보기