자료구조

자료구조 Binary Search Tree 기본 제공 함수 ////////////////////////////////////////////////////////////////////////////////// /* CE1007/CZ1007 Data Structures Lab Test: Section F - Binary Search Trees Questions Purpose: Implementing the required functions for Question 5 Implementing 'remove node' operation for BST*/ ////////////////////////////////////////////////////////////////////////////////// #includ..
자료구조 Stack and Queues 기본 제공 함수 ////////////////////////////////////////////////////////////////////////////////// /* CE1007/CZ1007 Data Structures Lab Test: Section C - Stack and Queue Questions Purpose: Implementing the required functions for Question 1 */ ////////////////////////////////////////////////////////////////////////////////// #include #include ///////////////////////////////////////..
알고리즘 1890 점프 # 실패코드! import sys from collections import deque input = sys.stdin.readline n = int(input()) arr = [] for _ in range(n): arr.append(list(map(int, input().split()))) queue = deque() # x,y 좌표값 추가 queue.append((0,0)) res = 0 while queue: cur_y, cur_x = queue.popleft() if cur_y == n-1 and cur_x == n-1: res += 1 continue distance = arr[cur_y][cur_x] new_x = cur_x + distance if distance !..
자료구조 B-Tree B트리란? B트리는 디스크나 다른 직접 접근 보조 기억장치에서 잘 동작하도록 설계된 균형잡힌 트리이다. B트리의 특징 이진트리와 다르게 하나의 노드에 여러개의 값을 가질 수 있다. 최대 M(B트리의 차수)개의 자식노드를 가질 수 있다. 3차 B트리라면 3개의 자식을 가질 수 있다.(leaf 노드 제외) 각 노드는 ⌈M/2⌉개의 key를 저장한다. 데이터 삽입 추가는 항상 leaf에 삽입한다. 노드가 넘치면 가운데 key를 기준으로 좌우 key들을 분리하고 다운데 key는 승진한다. 노드가 넘친다? 각 노드가 가질 수 있는 최대 M-1개의key를 초과한 경우를 뜻함 데이터 삭제 데이터의 삭제는 리프 노드에서만 이루어진다. 여기서 리프 노드가 아닌 노드에서 삭제를 시도할 경우, 가장 좌..
CS:APP 1. 정보는 비트와 컨텍스트로 이루어진다. bit 메모리를 구성하는 최소 단위로 0과 1을 저장할 수 있다. hello.c 위 사진과 같은 프로그램은 0과 1의 비트들의 연속으로, 8비트(1byte)로 구성된다. ASCII 대부분의 컴퓨터는 문자를 ASCII 표준을 사용해서 표현한다. 개행 문자의 경우, \n으로 표현되는 것을 알 수 있다. hello.c는 오로지 아스키 문자열로 이루어져 있으며, 이런 파일들을 텍스트 파일이라고 한다. 그 외 모든 파일을 바이너리 파일이라고 함. 컨텍스트 호출 응답간의 환경 정보, 서로 다를 객체들을 구분하는 방법이라고 한다. 딱 정의되어 있는 개념이 아닌 추상적인 개념이라 컴퓨터 공학을 공부하다 보면 심심치않게 만나볼 수 있는 단어. 아직은 익숙하지 않아 ..
비선형 자료구조 1. 트리 트리란? 트리란 뱡향성이 있는 비순환 그래프이다. 뒤집었을 때 뻗어나가는 나무의 형상을 해서 트리라고 한다. 트리의 구성 요소 가장 상위의 노드는 root 라고 하고, 가장 바깥 노드는 leaf, 그 외 노드는 branch 라고 한다. 사실상 명칭의 차이만 있을 뿐 모든 노드의 구성 요소는 일치한다. 트리의 특징 계층적 속성을 갖는 자료를 선형 구조로 표현하기 어렵다는 한계를 극복하기 위해 고안되었다. 모든 노드들은 하나의 루트 노트에서 시작한다. 뱡향성은 부모에서 자식으로만 연결, 같은 계층에 노드끼리는 연결하지 않는다. 임의의 노드에서 출발하여 자기 자신으로 되돌아올 수 없다. 간선의 갯수는 노드의 갯수 -1 이다. 이진트리란? 트리와 거의 동일한 구조로 이루어져 있으며, ..
오늘 발표를 마무리 하고 이제 본격적으로 알고리즘 학습주차에 접어들었다. 본격적으로 알고리즘 학습주차에 들어가기 전 백승현 코치님께서 기본적으로 알고 가야 할 개념들에 대해 한번씩 집어주셨다. 알고리즘을 시작하기 전 정확히 알고있어야 하는 개념들 1. 링크드 리스트, 배열 링크드 리스트와 배열은 비슷한 개념으로 이해하면 된다. 링크드 리스트는 각 메모리가 연속되어 나열되는 배열의 개념과는 다르게 현재 값과 다음 순서의 자료가 있는 주소를 가르키는 데이터를 하나의 노드로 묶어 배열을 구성한다. 링크드 리스트와 단순 배열의 가장 큰 차이는 저장된 값의 배열이 메모리 상에 연속되는지 아닌지 차이다. 장점 단점 배열 배열의 경우 정적 자료구조에 해당하며, 최초 할당 시 미리 크기를 정해놓게 되어 연속된 메모리 ..
·코딩딩/BOJ
# 오답 이유 : 시간초과 import sys input = sys.stdin.readline # 배열의 갯수 n = int(input()) # 배열의 형식 (stack, queue) dataA = list(map(int, input().split())) # 배열에 들어갈 숫자 dataB = list(map(int, input().split())) # 수열의 갯수 m = int(input()) # 수열 c = list(map(int,input().split())) #결과값 저장 result = [] # 수열의 갯수만큼 반복문 시작 for i in range(m): # 배열의 갯수만큼 2중 반복문 시작 for j in range(n): # 쓸대없는 리스트 삭제 # listTest = [] # listTes..
·코딩딩/Java
네이버 부스트 캠프의 코딩 테스트를 진행하며 알고리즘 문제를 풀다가 내가 너무 원시적인 방법으로 문제에 접근하고 있다는 생각에 자료구조에 대한 학습을 시작하였다. package list.arraylist.api; import java.util.ArrayList; import java.util.Iterator; public class Main { public static void main(String[] args) { ArrayList numbers = new ArrayList(); // Integer 형식의 ArrayList를 만든다. numbers.add(10); // 배열 끝에 내가 원하는 값을 추가하는 방법 numbers.add(20); numbers.add(30); numbers.add(40); ..
전낙타
'자료구조' 태그의 글 목록