어떤 문제의 해결을 위하여, 입력된 자료를 토대로 하여 원하는 출력을 유도하여 내는 규칙의 집합. 여러 단계의 유한 집합으로 구성되는데, 각 단계는 하나 또는 그 이상의 연산을 필요로 한다. 출처: 표준국어대사전개인적으로 알고리즘을 다음과 같이 정의하고자 한다. ▶ 여
input = "hello my name is study"def find_max_occurred_alphabet(string): alphabet_array = "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l"
▶ 소수란? 자신보다 작은 두 개의 자연수를 곱하여 만들 수 없는 1보다 큰 자연수를 의미함1) 입력값: 102) array만들기: 1,2,3, ..., 9,103) 4의 경우, 4보다 작은 수(2,3)으로 나누어 0이 된다면 탈락시키기코딩하는 시간보다 문제 해결을 위
비유: 특정 개수로 구성된 cell의 집합으로, 하나의 열을 이룸접근성: 좋음. 어느 cell이라도 단번에 접근 가능. 따라서 시간 복잡도는 O(1)로 표현 가능.경직성: 경직됨. 크기 변화 불가. 내부 자료간 자리 이동 시 비효율적임. 처음 설정 시 적합한 크기 조정
linked list 처음 또는 중간에 node 1개를 추가하기순서(index)와 값(value)을 활용해서 새로운 노드를 삽입하기1) 추가될 위치 접근: index-1번째 노드에 접근하기2) 새로운 노드 할당: new_node 변수에 할당하기3) 기존 노드 임시 변수
함수 내에 자기자신(함수)이 들어있는 함수스스로를 이용하기 때문에 코드 효율이 높아짐무한의 굴레에 빠질 수 있음함수에서 빠져나오는 코드 필수재귀함수를 사용해 60부터 0까지 표현해보자규칙 찾기: 함수의 결과가 자기자신의 인자로 들어가 또 다른 결과를 도출한다. 그러므로
5 -> 6 -> 7과 같은 linked list가 있다. 본 linked list의 끝에서 k번째 노드(node)를 반환해보자linked list의 끝으로 이동해서 마지막 노드(node)를 맨 앞(head)으로 이동시키고, 기존 마지막 노드(node)는 삭제한다.코드
한글로 구성된 list 2개(list_1, list_2)를 비교해서 list_2가 list_1에 포함되는지 확인하기① list_1과 list_2 를 동시에 접근하여 구성 내용이 일치하는지 확인하는 방법② 이분 탐색을 이용하는 방법(막연하게 가능할 것 같다는 생각이 든다
(마지막-1)번째 자료와 마지막 자료를 비교하여 교환하면서 자료를 정렬하는 방법숫자 array를 오름차순으로 정렬하기4와 6, 6과 2, 2와 9, 9와 1을 비교하여 9가 가장 마지막에 정렬됨4와 6, 6과 2, 2와 1을 비교하여 6이 (마지막-1)번째 정렬됨이렇게
데이터가 한쪽으로만 넣고 뺄 수 있는 구조가장 마지막에 저장된 데이터를 가장 먼저 불러올 수 있음(FILO)데이터의 삭제, 추가가 잦기에 linked list를 활용함데이터 추가(push), 데이터 뽑기(pop), 가장 최근 데이터 보기(peek), 데이터 유무 확인(
동일한 입력값에 대하여 동일한 해쉬결과를 도출하는 함수상이한 입력값에 대하여 상이한 해쉬결과를 도출하는 함수 8자리의 빈칸에 서로다른 값을 입력하고자 한다.입력값 list = 빨, 주, 노, 초, 파, 남, 보, 검list 만들기: list 형식으로 8개 칸 만들기자리
계층이 존재하는 비선형 자료구조나무를 거꾸로 뒤집어 놓은 듯한 모습임그림node: 데이터를 저장하는 기본요소root node: 트리의 level0 에 존재하는 노드level: 트리의 깊이를 나타내는 단위parent node: 어떤 노드의 상위에 연결된 노드child n
최댓값이 루트 노드(root node)에 위치한 완전이진트리(complete binary tree)부모 노드의 크기는 자식 노드의 크기보다 큼예시ㅇ 오른쪽 이진트리는 힙이 아님(7과 8, 4와 5의 위치 때문)추가하고자 하는 수를 리스트 가장 마지막에 추가하고, 부모
Depth First Search의 약자그래프(graph, 선과 노드로 표시된 것)에서 깊이를 우선하여 노드를 찾는 방법 찾는 순서: 1 → 2 → 5 → 9 → 3 → 6 → 10 → 7 → 4 → 8위와 같은 그래프에서 DFS 형식으로 노드 접근하기① 개념: 루트노
복잡한 문제를 간단한 여러 개의 문제로 나누어 푸는 방법설명: 이전 두 수의 합이 다음 수를 정의함예: 1, 1, 2, 3, 5, 8, 13,...피보나치 수열의 100번째를 구해보자