본문 바로가기

자료구조

(6)
자료구조 // directed graph (방향 그래프) // unweighted (비가중치) // adjacency matrix (인접 행렬) // 이해를 돕기 위해 기존 배열의 인덱스를 정점으로 사용합니다 (0, 1, 2, ... --> 정점) class GraphWithAdjacencyMatrix { //graph의 constructor를 구현합니다. constructor() { this.matrix = []; } //vertex를 추가합니다. addVertex() { const currentLength = this.matrix.length; for (let i = 0; i < currentLength; i++) { this.matrix[i].push(0); } this.matrix.push(new Arra..
Tree 개념 이해하기 목적 : 트리의 구조를 배열과 클레스 객체로 표현할 수 있다. 코드구현 class Tree{ constructor(value){ this.value=value this.children=[] } insert(value){ const childNode= new Tree(value) this.children.push(childNode) } } const rootNote= new Tree(null) rootNote.insert(1) firstNode= rootNote.children[0] firstNode.insert(2) console.log(firstNode) 깨달은 점 1.어떤 데이터의 관계를 만들 때 생각해야될 아이디어 1.1 데이터를 담을 공간을 만들어라 this.value= value 1.2 수직적 ..
Q의 이해 프린트 작업목록 문제 김코딩은 최근 인쇄할 일이 많이 생겨 창고에서 안 쓰던 프린터를 꺼냈습니다. 이 프린터의 성능을 테스트하여 새로운 프린터를 장만할지 결정하려고 합니다. 김코딩은 프린터의 인쇄 작업 목록의 크기와 최대 용량을 가정하고 각기 다른 용량의 문서를 차례대로 인쇄하여 모든 문서가 인쇄되는데 최소 몇 초가 걸리는지 테스트하기로 했습니다. 프린터 인쇄 작업 목록의 제한사항은 다음과 같습니다. [제한사항] 인쇄 작업 목록은 칸으로 이루어져 있습니다. 각 칸에는 한 개의 문서만 위치할 수 있습니다. 문서는 1초에 한 칸만 이동할 수 있습니다. 인쇄 작업 목록의 크기는 bufferSize이고 최대 용량 capacities 만큼 문서를 담을 수 있습니다. 만약, 인쇄 작업 목록의 크기가 2이고 최대 용량이 10Kib라..
Q의 이해 박스뽑기편 문제 박스 포장 문제 마트에서 장을 보고 박스를 포장하려고 합니다. 박스를 포장하는 데는 폭이 너무 좁아서, 한 줄로 서 있어야 하고, 들어온 순서대로 한 명씩 나가야 합니다. 불행 중 다행은, 인원에 맞게 포장할 수 있는 기구들이 놓여 있어, 모두가 포장을 할 수 있다는 것입니다. 짐이 많은 사람은 짐이 적은 사람보다 포장하는 시간이 길 수밖에 없습니다. 뒷사람이 포장을 전부 끝냈어도 앞사람이 끝내지 못하면 기다릴 수밖에 없는 환경입니다. 앞사람이 포장을 끝나면, 포장을 마친 뒷사람들과 함께 한 번에 나가게 됩니다. 만약, 앞사람의 박스는 5 개고, 뒷사람 1의 박스는 4 개, 뒷사람 2의 박스는 8 개라고 가정했을 때, 뒷사람 1이 제일 먼저 박스 포장을 끝내게 되고, 앞사람 1의 포장이 마칠 때까지..
스택의 이해 앞으로 가기 뒤로가기 문제 브라우저에서 "뒤로 가기", "앞으로 가기" 기능이 어떻게 구현되는지를 조건에 맞춰 구현하라. 조건 새로운 페이지로 접속할 경우 prev 스택에 원래 있던 페이지를 넣고 next 스택을 비웁니다. 뒤로 가기 버튼을 누를 경우 원래 있던 페이지를 next 스택에 넣고 prev 스택의 top에 있는 페이지로 이동한 뒤 prev 스택의 값을 pop 합니다. 앞으로 가기 버튼을 누를 경우 원래 있던 페이지를 prev 스택에 넣고 next 스택의 top에 있는 페이지로 이동한 뒤 next 스택의 값을 pop 합니다. 브라우저에서 뒤로 가기, 앞으로 가기 버튼이 비활성화일 경우(클릭이 되지 않을 경우)에는 스택에 push 하지 않습니다. 인터넷 브라우저에서 행동한 순서가 들어있는 배열 actions와 시작 페..
자료구조 기초 스텍 & 큐 자료구조를 왜 배울까? 자료구조란? 자료구조는 자료(데이터)를 다루는 구조 그 자체를 뜻한다. 즉 자료를 어떤 순서로 다룰 것인지에 대한 설계도라고 이해하면 쉽다. 목적: 원하는 데이터를 쉽게 찾기 위해서 만약 [1,2,3,4,....10000]중에서 원하는 데이터를 찾아 처리를 해야 한다고 한다면?? 당신은 어떤 방식을 쓰겠는가? 에 대한 물음이라는 생각. 스택(first in last out) 스택의 사전적 의미는 쌓다. 쌓았기 때문에 처음에 들어가기는 쉽지만 나오기 위해서는 마지막으로 나가야 함. ex) 1차선에 차들이 들어섰을 때 첫번째 차량은 먼저 들어갈 수 있지만 나가고 싶을 때는 마지막으로 나가는 구조. 생각해보기 1. 데이터가 만들어진다 객체에 순서를 만들어준다. 2. 그에 따라 속성이 하..