전체 글 527

SQL Basics

기본 쿼리문 더보기 elect Where And, Or, Not Order By Insert Into Null Values Update Delete Count Like Wildcards Aliases Joins Inner Join Left Join Right Join Group By 데이터베이스 관련 용어 SQL Create DB SQL Drop DB SQL Create Table SQL Drop Table SQL Alter Table SQL Not Null SQL Unique SQL Primary Key SQL Foreign Key SQL Default SQL Auto Increment SQL Dates 데이터베이스 관련 명령어 데이터베이스 생성 CREATE DATABASE testdb(데이터베이스_이..

백엔드/SQL 2021.11.11

Radix Sort

Radix Sort는 기수 정렬이라고 불립니다. 기수를 이용해서 정렬을 진행하는 방식이라고 생각하시면 쉽게 이해할 수 있는 알고리즘입니다. 1. Radix Sort 기수 정렬은 지금까지 배운 다른 정렬과 달리 서로의 배열 대상과 비교를 하지 않습니다. [3, 54, 7, 6103, 1045, 365, 356] 1의 자리 숫자를 0부터 9까지 숫자별로 나누어 놓습니다. [3, 6103, 54, 1045, 365, 356, 7] 이후 배열을 위의 그림에서 정렬한 방식대로 새롭게 배열을 만들어줍니다. 그리고 다음에는 자연스럽게 10의 자리 숫자를 분류하게 됩니다. 이처럼 10의 자리 숫자가 정렬이 진행됩니다. 그러나 여기서 중요한 점은 3, 7과 같은 10의 자리가 없는 숫자는 어떻게 될까요? 바로 0이라는 ..

정규표현식

표현식에서 내부적으로 특정 의미를 가지는 문자를 말하며 간단하게 정리하면 아래의 표와 같다. 표현식 의미 ^x 문자열의 시작을 표현하며 x 문자로 시작됨을 의미한다. x$ 문자열의 종료를 표현하며 x 문자로 종료됨을 의미한다. .x 임의의 한 문자의 자리수를 표현하며 문자열이 x 로 끝난다는 것을 의미한다. x+ 반복을 표현하며 x 문자가 한번 이상 반복됨을 의미한다. x? 존재여부를 표현하며 x 문자가 존재할 수도, 존재하지 않을 수도 있음을 의미한다. x* 반복여부를 표현하며 x 문자가 0번 또는 그 이상 반복됨을 의미한다. x|y or 를 표현하며 x 또는 y 문자가 존재함을 의미한다. (x) 그룹을 표현하며 x 를 그룹으로 처리함을 의미한다. (x)(y) 그룹들의 집합을 표현하며 앞에서 부터 순서..

Dynamic Programming

탐욕 알고리즘이 매 순간 최적의 선택을 찾는 방식이라면, Dynamic Programming은 모든 경우의 수를 조합해 최적의 해법을 찾는 방식입니다. Dynamic Programming의 원리 주어진 문제를 여러 개의 하위 문제로 나누어 풀고, 하위 문제들의 해결 방법을 결합하여 최종 문제를 해결하는 문제 해결 방식입니다. 하위 문제를 계산한 뒤 그 해결책을 저장하고, 나중에 동일한 하위 문제를 만날 경우 저장된 해결책을 적용해 계산 횟수를 줄입니다. 조건 큰 문제를 작은 문제로 나눌 수 있고, 이 작은 문제가 중복해서 발견된다. (Overlapping Sub-problems) 작은 문제에서 구한 정답은 그것을 포함하는 큰 문제에서도 같다. 즉, 작은 문제에서 구한 정답을 큰 문제에서도 사용할 수 있다..

그리디 알고리즘

Greedy는 "탐욕스러운, 욕심 많은" 이란 뜻입니다. Greedy Algorithm(탐욕 알고리즘)은 말 그대로 선택의 순간마다 당장 눈앞에 보이는 최적의 상황만을 쫓아 최종적인 해답에 도달하는 방법입니다. 단계적으로 구분 선택 절차(Selection Procedure): 현재 상태에서의 최적의 해답을 선택합니다. 적절성 검사(Feasibility Check): 선택된 해가 문제의 조건을 만족하는지 검사합니다. 해답 검사(Solution Check): 원래의 문제가 해결되었는지 검사하고, 해결되지 않았다면 선택 절차로 돌아가 위의 과정을 반복합니다. 탐욕 알고리즘은 문제를 해결하는 과정에서 매 순간, 최적이라 생각되는 해답(locally optimal solution)을 찾으며, 이를 토대로 최종 문..

Time Complexity

시간 복잡도 표현 방법 O(1) Big-O 표기법은 입력값의 변화에 따라 연산을 실행할 때, 연산 횟수에 비해 시간이 얼마만큼 걸리는가?를 표기하는 방법입니다. O(1)는 constant complexity라고 하며, 입력값이 증가하더라도 시간이 늘어나지 않습니다. 해시 테이블의 조합 및 삽입에 해당 더보기 function O_1_algorithm(arr, index) { return arr[index]; } let arr =[1, 2, 3, 4, 5]; let index =1; let result = O_1_algorithm(arr, index); console.log(result); // 2 O(n) O(n)은 linear complexity라고 부르며, 입력값이 증가함에 따라 시간 또한 같은 비율로..

Intro to Algorithm

알고리즘이란 무엇일까요? 알고리즘은 문제를 해결하는 최선의 선택입니다. 알고리즘 문제 푸는 방법 문제를 이해 대부분의 코딩 테스트에서는 문제의 설명과 입출력예시, 제한사항, 그리고 주의사항 등으로 문제 상황을 제시합니다. 주어진 조건을 토대로 문제가 무엇인지를 이해하는 것부터 시작해야 합니다. 문제를 어떻게 해결할 수 있을지, 전략을 세워야 합니다. 연습장에 전체적인 그림을 그려가면서 페어와 나눠보세요. 전체적인 흐름을 공유할 수 있습니다. 수도코드를 작성하기 전,연습장이나 온라인 화이트보드를 사용하여 문제에 대해 논의 수도코드 작성 문제를 코드로 옮겨 보세요.

code 알고리즘 2021.11.08

환경변수 사용법(2)

.env: Node.js에서 환경변수 영구 적용 명령어 export 로 적용한 환경변수는 현재 사용 중인 터미널에서만 임시로 사용이 가능합니다. 환경변수를 Linux 운영체제에 저장하는 방법은 여러 가지가 있지만, Node.js에서는 파일 .env를 만들어 저장하는 방법을 사용합니다. 먼저 .env 파일을 생성하고, 사용하고자 하는 환경변수를 입력한 뒤 저장합니다. 모듈 dotenv를 이용하면, 파일 .env에 저장한 환경변수를 조회할 수 있습니다. index.js를 다음과 같이 수정하고, 저장합니다. const dotenv = require("dotenv"); dotenv.config(); console.log(process.env.myname); 환경변수를 이용해 API key, DB password..