전체 글

뭐든 공부하면 언젠간 다 도움이 될거야
· 알고리즘
스택이란? - 먼저 들어온 데이터가 나중에 나가는 자료구조 - 흔히 박스가 쌓인 형태를 스택(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보다 큰 값들만 남겨두는 것이다 이렇게 하면 어떤 값들이 중복해서 들어..
프흐프좋아
개발자로 살아남기