원하는 자료구조를 선택하여 특정한 문제를 해결하는데 가장 중요한 것은, 사용하려는 자료구조가 어떠한 성질을 가졌는지 아는 것이다.
배열 > 원소들을 순서대로 늘어놓은 것 > | data | 2 | 7 | -2 | 5 | 10 | | --- | --- | --- | --- | --- | --- | | index | 0 | 1 | 2 | 3 | 4 | 5 | Python 에서의 리스트(list)
배열 - 정렬과 탐색
하나의 함수에서 자신을 다시 호출하여 작업을 수행하는 것생각보다 많은 종류의 문제가 재귀적으로(Recursively) 해결가능왼쪽 서브트리의 원소들은 모두 작거나 같을 것오른족 서브트리의 원소들은 모두 클것\-> 이 원칙을 모든 노드에 대해서 적용 문제 : 1부터 n까
하나의 함수에서 자신을 다시 호출하여 작업을 수행하는 것문제 : n개의 서로 다른 원소에서 m개를 선택하는 경우의 수를 계산코드 (iterative version)코드 (recursive version)\-> 효율성 측면에서 반복문을 활용하는것이 저 좋음효율성 측면에서
문제의 크기와 이를 해결하는 데 걸리는 시간 사이의 관계문제의 크기와 이를 해결하는 데 필요한 메모리 공간 사이의 관계임의의 입력 패턴을 가정했을 때 소요되는 시간의 평균가장 긴 시간을 소요하게 만드는 입력에 따라 소요되는 시간점근 표기법(asymptotic notat
좌표평면 상에서 직사각형을 만들때 x좌표, y좌표를 이웃한 점과 공유한다는 것을 이용한다.x,y 좌표로 나누어 값을 받은후 짝수번 등장하지 않은 값을 반환
상품명과 무게의 정보를 dict 변수를 이용하여 저장한다.입력된 순서대로 트럭에 싣는다
방정식을 이용하여 brown red 각 변수의 의미를 파악한다.반복문을 이용하여 방정식을 해결한다.
조합을 이용하여 모든 경우의 수를 구한다.조건문을 이용하여 정확히 m 그램으로 채우는 경우의 수를 구한다.
데이터예 : 정수, 문자열, 레코드, ...A set of operations삽입, 삭제, 순회, ...정렬, 탐색, ...Node 내의 데이터는 다른 구조로 이루어질 수 있음예) 문자열, 레코드, 또 다른 연결 리스트 등Head : 연결리스트의 기준점이며, 첫번째 노