자료구조 썸네일형 리스트형 순차적 자료구조(배열과 리스트) 배열(Array)과 리스트(List) Python에서는 리스트가 배열 자료구조다. 배열과 리스트는 데이터를 연속적인 메모리 공간에 저장하고, 저장된 곳의 주소를 통해 접근하는 자료구조다. 좌측의 그림은 int Array[4]를 통해 정수 4개를 저장할 수 있는 연속적인 메모리 공간을 할당한 것이다. 각각의 메모리 공간은 주소를 갖는다. 주소가 4씩 커지는 이유는 정수의 크기가 4Byte니까. 위의 그림과 같이 메모리의 주소가 주어지면, 단위시간에 값을 읽거나 저장하는 것이 가능하다. print(A[2]) # A[2]의 값을 읽을 수 있다. A[2] = 8 # A[2]의 메모리에 값 8을 저장할 수 있다. 그래서 중요한 사실은~ 1️⃣ 배열의 시작 주소 2️⃣ 저장된 값의 종류(int인지 string인지 .. 더보기 시간복잡도(Big-O표기법) Big-O 표기법을 이해하기 전에.. '수행횟수' -> '수행시간' -> 'Big-O표기법' '수행횟수'가 몇번이냐에 따라 '수행시간'이 몇인지 결정되고, 그 수행시간을 표기하는 방법이 'Big-O'표기법이다. '수행횟수'는 연산을 몇 번 수행했는지를 의미하는데, 연산의 종류는 아래와 같다. 연산의 종류 대입연산(=배정, 복사연산) : a = b와 같이 a레지스터에 b의 값을 복사해서 대입하는 연산 산술연산 : +, -, *, / 비교연산 : >, >=, 더보기 유클리드 호제법(Euclidean algorithm) Summary 유클리드 호제법은 최대공약수(Greatest Common Divisor)를 구하는 알고리즘이다. '호제'의 뜻은 '서로 호'(互)와 '덜 제'(除)의 조합으로 서로 빼는 과정을 반복해서 최대공약수를 구하겠다는 뜻이다. 이때, 큰 수에서 작은 수를 빼야 한다.(최대공약수는 양수여야만 하니까) HOW 1. ※ 12와 8의 최대공약수를 유클리드 호제법으로 구하는 순서 : 1️⃣ 12와 8 두 가지 숫자가 있음 2️⃣ 12에서 8을 빼면 4가 나옴 3️⃣ 12에서 8을 뺀 결과인 4가 12를 대체함 4️⃣ 그러면, 이제 8과 4 두 가지 숫자가 있음 5️⃣ 8에서 4를 빼면 4가 나옴 6️⃣ 그러면, 이제 8에서 4를 뺀 4가 8을 대체함 7️⃣ 같은 숫자 4 가 두개 남았음, 이때는 4에서 다른.. 더보기 이전 1 다음