목록분류 전체보기 (298)
\(@^0^@)/

- 자료구조 / 알고리즘 (Js ver.) 강의 괄호 계산 '()'인 괄호 열 값은 2 '[]'인 괄호 열 값은 3 '(X)'인 괄호 값은 2 * 값 (X)로 계산 '[X]'인 괄호 값은 3 * 값 (X)로 계산 괄호형 X와 Y가 결합된 XY는 값(XY) = 값(X) + 값(Y)으로 계산 예를 들어 ()[[]]는 2 + 3 * 3 = 11이 나오며, ([])의 값은 2 * 3으로 6. let result = 0; let stack = []; let temp = 1; for (let i = 0; i < str.length; i++) { let mark = str[i]; switch (mark) { case "(": temp *= 2; stack.push(mark); break; case "[": temp ..

- 자료구조 / 알고리즘 (Js ver.) 강의 강의로 스택 학습. Hello Coding으로 재귀 및 호출 스택 학습. 17:50 오후 회고 스터디 (만족도 : 6) 계획을 달성하지 못했고, 생각만큼 집중이 좋지 않았기에 6점. - 자료구조 / 알고리즘 (Js ver.) 강의 괄호 짝 찾기 괄호의 짝 별 위치를 [시작, 끝]으로 찾아 2차원 배열 형태로 반환. 위치 시작 값은 0으로 시작하며, 하나라도 짝이 맞지 않을 경우 빈 배열 반환 예시) 입력 값 출력 값 (a*(b+c)+d) [[3, 7],[0,10]] (a*b+c)+d)+e) [ ] let result = []; let stack = []; for (let i = 0; i < str.length; i++) { if (str[i] == "(")..

스택 (Stack) 나중에 넣은 데이터가 먼저 나오는 LIFO(Last In First Out) 기반의 선형 자료 구조 구현 메서드 (method) 데이터 전체 획득 / 비어 있는지 확인 : Stack.getBuffer(), Stack.isEmpty() 추가 / 삭제 / 마지막 데이터 조회 / 크기 확인 : Stack.push(), Stack.pop(), Stack.peak(), Stack.size() 데이터 위치 / 존재 여부 확인 : Stack.indexOf(), Stack.includes() Stack() : 생성자 함수로 초기 데이터 설정 getBuffer() : 객체 내 데이터 셋 반환 isEmpty() : 객체 내 데이터 존재 여부 파악 // Stack(): 생성자 함수로 초기 데이터 설정 f..

- Hello Coding 알고리즘 TIL 작성 - 자료구조 / 알고리즘 (Js ver.) 강의 해당 숫자의 자릿수 별 빈도수 구하기 (간단하게 정리하기 위해서 num값을 미리 지정하였음) // 자릿수 계산 let result = []; let num = 1234; // 1. 배열안에 각 자릿수 별 index 생성. for (let i = 0; i < 10; i++) { result[i] = 0; } // 2. 각 자릿수의 빈도수를 적립. while (num != 0) { result[num % 10]++; num /= 10; num = parseInt(num); } console.log(result) // (10) [0, 1, 1, 1, 1, 0, 0, 0, 0, 0] 0부터 9까지의 총 10개인 숫자..

[ 1장 알고리즘 소개 ] 많이 사용하는 빅오 실행 시간의 예 O(log n), 로그 시간 : 예) 이진 탐색 O(n), 선형 시간 : 예) 단순 탐색 O(n * log n) : 예) 퀵 정렬과 같이 빠른 정렬 알고리즘 O(n²) : 예) 선택 정렬과 같이 느린 정렬 알고리즘 O(n!) : 예) 외판원 문제와 같이 정말 느린 알고리즘 빈 종이에 16개의 네모칸을 만드는 문제를 예로 들어 각 빅오 실행 시간을 알아보자. 네모 칸의 수 O(log n) O(n) O(n log n) O(n²) O(n!) 16개 0.4초 1.6초 6.4초 25.6초 66301년 256개 0.8초 25.6초 3.4분 1.8시간 2. x 10⁴⁹⁸년 1024개 1.0초 1.7분 17분 1.2일 1.72 x 10²⁶³¹년 이진 탐색은..

코테를 보고 충격 먹었으면 공부를 더 열심히 해야 하는데 역으로 엄청 오래 쉬고 저녁 아홉 시 반에서야 공부 조금 해보려고 책상에 앉은나... 오잉? 어린이날이라서 그렇다^^ 매일 쉬는 날인데 남들 쉴 때도 또 쉬고 싶은 나... 오잉~ - 자료구조 / 알고리즘 (Js ver.) 강의 아직도 연결 리스트 자료구조 학습하는 중... 대충 이해가 됐다고 생각했는데, 또 막상 문제를 풀려하면 쉽게 접근을 못 하겠다. 그 말은 아직 자료구조를 제대로 파악 못한 거지ㅠ 근데 계속 이론만 학습할 수는 없는 것 같고, 문제를 풀면서 이해하고 정리해야 할 것 같음. [ 출처, 참고 : 제로베이스 프런트엔드 스쿨 ]

- 자료구조 / 알고리즘 (Js ver.) 강의 원형 연결 리스트 (Circular Linked List) 각 노드가 데이터와 포인터를 가지며, 원형 형태로 연결되어 있는 방식으로 데이터를 저장하는 자료 구조 구현 메서드 (method) 노드 개수 / 비어 있는지 확인 : CircularLinkedList.size(), CircularLinkedList.isEmpty() 노드 추가 : CircularLinkedList.append(), CircularLinkedList.insert() 노드 삭제 : CircularLinkedList.remove(), CircularLinkedList.removeAt() 데이터 위치 확인 / 노드 출력 : CircularLinkedList.indexOf(), Circula..

이중 연결 리스트 (Double Linked List) 각 노드가 데이터와 포인터를 가지며, 두 줄로 연결되어 있는 방식으로 데이터를 저장하는 자료 구조 구현 메서드 (method) 노드 개수 / 비어 있는지 확인 : DoubleLinkedList.size(), DoubleLinkedList.isEmpty() 순차 출력 / 역 출력 : DoubleLinkedList.printNode(), DoubleLinkedList.printNodeInverse() 노드 추가 : DoubleLinkedList.append(), DoubleLinkedList.insert() 노드 삭제 : DoubleLinkedList.remove(), DoubleLinkedList.removeAt() 데이터 위치 확인 : DoubleL..

지금까지 약 3주? 동안 너무 루즈해져서 내 계획보다 해야 할 것들을 많이 못 했기도 했지만.. 또또 계획을 잘 못 세운 느낌ㅠ 내일부터 매주 알고리즘 테스트를 보는데, 너무 준비가 안되어 있는 상태라서 걱정이다. 이게 한순간에 실력이 느는 것이 아닌데.... 그래도 알고리즘을 어느 정도 풀 수 있는 상태로 만드는 것이 우선이라 생각하여 오늘부터는 알고리즘 위주의 학습을 하기로 계획을 수정했다. 하지만 이것 또한 맞는 플랜인지 잘 모르겠다..ㅠ 그냥 계속 계속 계획하고 수정하며, 내가 지금 맞는 길로 가고 있는지, 무엇이 필요하고 무엇이 부족한지 메타인지를 하며 공부하고 목표를 세워야 할 것 같다. - 자료구조 / 알고리즘 (Js ver.) 강의 연결 리스트를 학습하였는데, 정리하다 보니 내용이 너무 길..

TDL에 정리하기에는 너무 내용이 길어서, 보기 쉽게 한 번에 정리하기 위하여 TIL로 작성. Linked-list를 1부터 6까지 다양한 구현 메서드를 활용해보자! 연결 리스트 (Linked List) 각 노드가 데이터와 포인터를 가지며, 한 줄로 연결되어 있는 방식으로 데이터를 저장하는 자료 구조 구현 메서드(method) 노드 개수/ 비어 있는지 확인/ 노드 출력 : LinkedList.size(), LinkedList.isEmpty(), LinkedList,printNode() 노드 추가 : LinkedList.append(), LinkedList.insert() 노드 삭제 : LinkedList.remove(), LinkedList.removeAt() 데이터 위치 확인 : LinkedList.i..