스택이란? - 먼저 들어온 데이터가 나중에 나가는 자료구조 - 흔히 박스가 쌓인 형태를 스택(stack)이라고 한다. - 우리가 박스를 쌓은 뒤에 꺼낼 때는, 가장 마지막에 올렸던 박스부터 꺼내야 한다. 전체 연산: 삽입 3 – 삽입 5 – 삭제 – 삽입 7 – 삭제 – 삽입 8 – 삭제 – 삽입 2 – 삽입 9 이라면 3 5 3 7 3 3 8 3 3 2 3 9 2 3 의 순서로 풀이할 수 있다 (왜 옆으로 나열이 안돼 ㅠ) 연산? 1. 삽입 : O(1) 2. 추출 : O(1) 3. 최상위 원소 : O(1) 4. empty : O(1)
전체 글
뭐든 공부하면 언젠간 다 도움이 될거야1. 배열(Array) - 가장 기본적인 자료구조 - 여러개의 변수를 담는 공간 장점: 캐시(cache) 히트 가능성이 높으며, 조회가 빠르다. 단점: 배열의 크기를 미리 지정해야 하는 것이 일반적이므로, 데이터의 추가 및 삭제에 한계가 있다. 2. 연결 리스트(Linked List) - 배열과 다르게 크기가 정해져 있지 않고, 리스트의 크기는 동적으로 변경 가능하다. 장점 : 포인터(pointer)를 통해 다음 데이터의 위치를 가리킨다는 점에서 삽입과 삭제가 간편하다. 단점 : 특정 번째의 원소를 검색할 때는 앞에서부터 원소를 찾아야 하므로, 데이터 검색 속도가 느리다. 형태 포인터 : 다음 노드의 메모리 주소를 가리키는 목적으로 사용된다 연결성: 각 노드의 포인터는 다음 혹은 이전 노드를 가리킨다. ..
자료구조란? - 다수의 자료를 담기 위한 구조 - 데이터의 수가 많아질 수록 적절한 자료구조가 필요하다 => 데이터를 효과적으로 저장하고, 처리하는 방법에 대해 알면 불필요한 메모리와 계산을 낭비할 여지가 없다! 자료구조의 종류 1. 선형 구조 - 배열(array) - 연결 리스트(linked list) - 스택(stack) - 큐(queue) 2. 비선형 구조 - 트리(tree) - 그래프(graph) 선형 자료 구조란? - 하나의 데이터 뒤에 다른 데이터가 하나 존재하는 자료구조를 뜻함. - 데이터가 일렬로 연속적으로 연결되어 있다. ex) 스택, 큐, 배열 , 연결리스트 비선형 자료 구조란? - 하나의 데이터 뒤에 다른 데이터가 여러 개 올 수 있는 자료구조를 뜻함. - 데이터가 일직선상으로 연결되..
https://www.acmicpc.net/problem/2562 2562번: 최댓값 9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어 www.acmicpc.net 난 박박대가리다 // readline 모듈보다는 fs를 이용해 파일 전체를 읽어 들여 처리하기 let fs = require('fs'); let input = fs.readFileSync('test.txt').toString().split('\n'); // /dev/stdin // let data = input.map(x => Number(x)); // 숫자로 초기..
실무에서 일을 하다보면 프로젝트를 진행할 때, 킥오프 회의를 진행하는 경우가 있습니다 프로젝트에 대한 설명을 말로 하다가.. 어느 순간 놓치게 되는 부분들이 생깁니다 이럴때 UML을 꺼내보면 좋은데요 문제는 다이어그램 그리기가 좀 번거롭고 어려워서 툴을 소개 해드리려고 합니당 온라인 기반 다이어그램 작성 툴 draw.io 입니다 ! http://draw.io/ Flowchart Maker & Online Diagram Software Flowchart Maker and Online Diagram Software draw.io is free online diagram software. You can use it as a flowchart maker, network diagram software, to cr..
라라벨 프로젝트 생성해보기 git bash나 powershell 준비 라라벨 프로젝트를 만들고자 하는 경로로 접속 cd d: // 이건 제 예제니까 마음껏,,~ composer create-project laravel/laravel test // 원하는 경로 접속 후 프로젝트 생성 cd test // 내가 생성한 폴더로 접근 php artisan serve // 서버 시작 2. 접근해보기 localhost:8000 에서 대부분 접근 가능 안뇽~ 다음은 로컬 DB를 파보자..
PHP를 설치한다. https://www.php.net/downloads.php PHP: Downloads Current Stable PHP 8.1.9 ( Changelog ) ¶ php-8.1.9.tar.gz (sig) [19,247Kb] 04 Aug 2022 954cf77f7e0a70dc765e7639acdfdccd164be5cd1bce3dbe9d10c58dca631e76 php-8.1.9.tar.bz2 (sig) [14,959Kb] 04 Aug 2022 9ebb0e2e571db6fd5930428dcb2d19ed3e050338ec1f1347c282cae92fc086ff php-8.1.9.tar.xz (sig) [11,512Kb]... www.php.net 1) 상단에서 원하는 버전의 php를 다운받아..
1. 3-way merge 한줄 설명 : 기본적으로 우리가 알고있는 merge의 형태이다. main branch에 commit들이 쌓여있고, sub branch에 commit이 쌓인 상태에서 sub branch의 내용을 main branch에 합치고 싶을 때 사용한다 그림으로 설명하면 아래와 같다 3-way merge 설명 그림이 좀 끔찍해 보일 수 있는데,, 빨간색이 - main 검정색이 - sub branch라고 각각 규정하고 보자. sub branch의 내용을 main branch에 merge하면 새로운 commit이 main branch에 생성되면서 (우리가 아는 커밋메시지가 merge어쩌구..로 시작하는..) merge가 진행된다. 이를 3-way merge라고 한다. git ..
백준에서 node.js 나 js로 알고리즘을 풀려고하면 자바처럼 값을 입력받는 scanner 같은게 없어서 파일로 받아야하는데 테스트도 안되고 짱날때가 있어서 기본코드를 만들어 놨다 // readline 모듈보다는 fs를 이용해 파일 전체를 읽어 들여 처리하기 const fs = require('fs') const input = fs .readFileSync(process.platform === "linux" ? "/dev/stdin" : "test.txt") .toString() .trim() .split("\n"); function solution(data) { let [N,K] = input[0].split(" ").map(Number); let coin = new Array(); // 동전꾸러미 ..
your_table에는 A라는 필드가 존재한다 이 A의 필드에는 여러가지 값이 들어가지만, 종종 같은 값이 들어가기도 한다. 예를 들어, 1, 2, 3, 4 ... 값이 들어가다가 어느때에는 2 , 4와같이 이미 한번 들어갔던 값이 들어갈 수 있는 테이블이다. 근데 나는 A 필드의 무슨 값이 중복해서 여러번 들어갔는지 알고싶다. 그럴 땐 요렇게 쓰면 된다. SELECT A, COUNT(*) as count FROM your_table GROUP BY A HAVING count > 1; HAVING 절은 GROUP BY를 사용했을 때 쓸 수 있는 쿼리절 중 하나다. A에 대하여 그룹화를 하고, 그룹화를 한 값들에 대해 count 값이 1보다 큰 값들만 남겨두는 것이다 이렇게 하면 어떤 값들이 중복해서 들어..