개발 뜯기/컴퓨터과학

Double Linked List 이중 연결 리스트(Double Linked List) 각 노드가 데이터와 포인터를 가지며, 두 줄로 연결되어 있는 방식으로 데이터를 저장하는 자료 구조 (이전 값 접근 가능!) 구현 메서드 노드 개수 / 빈 노드 확인: DoubleLinkedList.size(), DoubleLinkedList.isEmpty() 순차 출력 / 역 출력: DoubleLinkedList.printNode(), DoublelinkedList.prontNodeInverse() 노드 추가: DoubleLinkedList.append(), DoubleLinkedList.insert() 노드 삭제: DoubleLinkedList.remove(), DoubleLinkedList.removeAt() 데이..
Circular Linked List 원형 연결 리스트(Circular Linked List) 각 노드가 데이터와 포인터를 가지며, 원형 형태로 연결되어 있는 방식으로 데이터를 저장하는 자료 구조 사용 많이 안함! 구현 메서드 노드 개수 / 빈 노드 확인 / 출력: CircularLinkedList.size(), CircularLinkedList.isEmpty(), CircularLinkedList.printNode() 노드 추가: CircularLinkedList.append(), CircularLinkedList.insert() 노드 삭제: CircularLinkedList.remove(), CircularLinkedList.removeAt() 데이터 위치 확인: CircularLinkedList.i..
2. 점화식 1) 점화식(재귀식) : 수열에서 이웃하는 두 개의 항 사이에 성립하는 관계를 나타낸 관계식 대표 점화식 등차 수열: F(n) = F(n - 1) + a 등비 수열: F(n) = F(n - 1) * a 팩토리얼: F(n) = F(n - 1) * n 피보나치 수열: F(n) = F(n - 1) + F(n - 2) 2) 등차수열 ✔ for문 let result; function forloop(s, t, num) { let acc = 0; for (let i = 1; i
1. 경우의 수 경우의 수 어떤 사건 혹은 일이 일어날 수 있는 경우의 가짓수를 수로 표현 완전 탐색으로 경우의 수를 푸는 알고리즘 순열(nPr) 조합(nCr) 중복(nH): 서로 다른 n개의 원소 중 r을 중복으로 골라 순서에 상관 있게 나열하는 수 1) 순열 : 서로 다른 n개의 원소 중 r을 중복 없이 골라 순서에 상관 있게 나열하는 수 ✔ for문 증가 할수록 대처 하는데 한계가 있음 let input = ["a", "b", "c"]; let count = 0; function permutation(arr) { for (let i = 0; i < arr.length; i++) { for (let j = 0; j < arr.length; j++) { if (i == j) continue; // 중복..
0. 알고리즘 복잡도 1) 알고리즘 복잡도(시간 복잡도) ✔ 알고리즘 평가 지표 코테 시 메모리 사용량, 시간 복잡도를 중점으로 생각해야 함 ✔ 시간 복잡도 입력 크기의 값에 대해 단위 연산을 몇 번 수행하는지 계싼하여 수행시간을 평가하는 방법 3가지 점근적 표현법 Big-O(빅오): 최악의 상황을 고려 성능 측정 결과 표현 big-Θ(세타): 평균적인 경우 성능 측정 결과 표현 big-Ω(오메가): 최선의 상황일 때 성능 측정 결과 표현 ✔ Big-O 표기법 O(1) 상수일 때: 아무리 커도 상수이므로 1로 표현 function bigO(n) { let sum - 0; // 1회 sum = n * 2; // 1회 return sum; // 1회 } O(N), O(N²) for문이 몇(n) 개로 중첩 되..
디자인 지지(ZII)
'개발 뜯기/컴퓨터과학' 카테고리의 글 목록 (2 Page)