분류 전체보기
-
Stack / Queue / Recursive functionAlgorithm | Data structure/Theory 2023. 4. 11. 02:04
Stack / Queue / Recursive function 탐색(Search)이란 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정을 말한다. 대표적인 그래프 탐색 알고리즘으로는 DFS와 BFS가 있다. DFS/BFS는 코딩 테스트에서 매우 자주 등장하는 유형!! DFS : https://growth-msleeffice.tistory.com/137 BFS : 준비중 DFS/BFS 알고리즘을 학습하기 전 반드시 알아야 할 개념으로 스택, 큐 자료구조와 재귀함수가 있다. 스택 먼저 들어온 데이터가 나중에 나가는 형식(선입후출)의 자료구조 데이터를 집어 넣는 push, 데이터를 추출하는 pop, 가장 나중에 삽입된 데이터를 확인하는 peek등의 작업을 할 수 있다. 함수 실행 콘텍스트들이 쌓이는 Call..
-
컴퓨터가 데이터를 표현하고 이해하는 방식기타 2023. 4. 7. 18:55
0과 1로 숫자를 표현하는 방법 정보단위 컴퓨터는 0과 1밖에 이해하지 못한다. 즉 이진수만 이해한다. 비트(bit) : 0과 1을 나타내는 가장 작은 정보단위 비트는 이진수의 자리수? 1비트는 2진수로 1의 자리수까지 표현 가능 -> 0b0과 0b1 21가지 2비트는 2진수로 2의 자리수까지 표현 가능 -> 0b00 ~ 0b11 22가지 3비트는 2진수로 4의 자리수까지 표현 가능 -> 0b000 ~ 0b111 23가지 즉, n비트는 2n가지 정보를 표현할 수 있다. 정보단위 변환 1 바이트(byte) 8 비트(bit) 1 킬로바이트(kB) 1,000 바이트(byte) 1 메가바이트(MB) 1,000 킬로바이트(kB) 1 기가바이트(GB) 1,000 메가바이트(MB) 1 테라바이트(TB) 1,000 기..
-
구현 : 시뮬레이션과 완전 탐색Algorithm | Data structure/Theory 2023. 4. 7. 16:12
구현 : 시뮬레이션과 완전 탐색 구현이란 머릿속에 있는 알고리즘을 소스코드로 바꾸는 과정이다. 흔히 알고리즘 대회에서 구현유형의 문제란 풀이를 떠올리는 것은 쉽지만 소스코드로 옮기기 어려운 문제이다. 구현 유형의 예시 알고리즘은 간단한데 코드가 지나칠 만큼 길어지는 문제 실수 연산을 다루고, 특정 소수점 자리까지 출력해야 하는 문제 문자열을 특정한 기준에 따라서 끊어 처리해야 하는 문제 적절한 라이브러리를 찾아서 사용해야 하는 문제 이런 구현 문제는 다양한 풀이 경험이 필요하다. 일반적으로 알고리즘 문제에서의 2차원 공간은 행렬의 의미로 사용한다. 시뮬레이션 및 완전 탐색 문제에서는 2차원 공간에서의 방향 벡터가 자주 활용된다. // 동, 북, 서, 남 const dx = [0, -1, 0, 1]; co..
-
원티드 프리온보딩 : 컨테이너 기술과 Docker의 기본 개념Server/기타 2023. 4. 6. 23:24
도커란 무엇일까 컨테이너 기반 가상화 도구 애플리케이션을 컨테이너라는 단위로 격리하여 실행하고 배포하는 기술 컨테이너란 무엇일까 컨테이너는 가상화 기술 중 하나 리눅스 컨테이너 기술인 LXC(Linux Containers) 기반 애플리케이션을 컨테이너라는 단위로 격리하여 실행하고 배포하는 기술 다양한 운영체제에서 사용할 수 있으며, 컨테이너화된 애플리케이션을 손쉽게 빌드, 배포, 관리할 수 있는 다양한 기능을 제공 위 기능들을 통해 애플리케이션을 빠르게 개발하고, 효율적으로 배포, 관리할 수 있음 가상화(virtualiztion) 기술이란 하나의 물리적인 컴퓨터 자원(CPU, 메모리, 저장장치 등)을 가상적으로 분할하여 여러개의 가상 컴퓨터 환경을 만들어내는 기술. 이를 통해 물리적인 컴퓨터 자원을 더욱..
-
컴퓨터 구조의 큰 그림기타 2023. 4. 6. 15:07
컴퓨터 구조의 큰 그림 컴퓨터구조 │ ├── 컴퓨터가 이해하는 정보 │ │ │ ├── 데이터 : 컴퓨터가 이해하는 숫자, 문자, 이미지, 동영상과 같은 정적인 정보 │ │ │ └── 명령어 : 데이터를 움직이고 컴퓨터를 작동시키는 정보 │ │ └── 컴퓨터의 네 가지 핵심 부품 │ ├── CPU : 메모리에 저장된 명령어를 읽어들이고, 해석하고 실행하는 부품 │ ├── 메모리(주기억장치) : 실행되는 프로그램의 명령어와 데이터를 저장하는 부품, 보통 RAM을 지칭 │ ├── 보조기억장치 : 전원이 꺼져도 저장된 내용을 기억할 수 있는 장치 │ └── 입출력장치 : 컴퓨터 외부에 연결되어 컴퓨터 내부와 정보를 교환할 수 있는 장치 컴퓨터의 4가지 핵심 부품 출처 : https://www.inflearn.c..
-
[프로그래머스] JavaScript 진수 변환Algorithm | Data structure/문제풀이 2023. 4. 5. 19:57
JavaScript 진수 변환 프로그래머스의 3진법 뒤집기 문제를 풀다가 진법 변환 문제가 나와 정리한다. 10진수를 n진수로 변환 const decimal = 100; const ternary = decimal.toString(3); // 3진수 변환 const binary = decimal.toString(2); // 2진수 변환 const octal = decimal.toString(8); const hex = decimal.toString(16); n진수를 10진수로 변환 let decimal; decimal = parseInt(ternary, 3); // 3진수를 10진수로 변환 decimal = parseInt(binary, 2); // 2진수를 10진수로 변환 decimal = parseIn..
-
GreedyAlgorithm | Data structure/Theory 2023. 4. 5. 19:00
Greedy 그리디 알고리즘(탐욕법)은 현재 상황에서 지금 당장 좋은 것만 고르는 방법을 의미한다. 일반적인 그리디 알고리즘은 문제를 풀기 위한 최소한의 아이디어를 떠올릴 수 있는 능력을 요구한다. 그리디 해법은 그 정당성 분석이 중요하다. 정당성 분석 단순히 가장 좋아 보이는 것을 반복적으로 선택해도 최적의 해를 구할 수 있는지 검토하는 과정이 필요하다. 위 예의 경우, 최적의 해는 5->7->9이다. 그런데, 단순히 매 상황에서 가장 큰 값만 고른다면, 5->10->4 가 해가 되어 최적의 해인 21보다 낮은 값이 된다. 그리디 알고리즘은 이처럼 단순히 매 상황에서 큰 값만 고르는 방식이라고 할 수 있다. 따라서 일반적인 상황에서 그리디 알고리즘은 최적의 해를 보장할 수 없을 때가 많다. 하지만 코딩..
-
[Nest.js] 로컬에서 https 서버 구동하고 postman으로 테스트 하기Server/Nest.js 2023. 4. 4. 17:27
[Nest.js] 로컬에서 https 서버 구동하고 postman으로 테스트 하기 진행하고 있는 프로젝트에서 refresh token을 secure, httpOnly 옵션으로 쿠키에 담아 전송해주기로 했다. 그런데 프로덕트 api 서버가 https 서버로 세팅되어 있기 때문에 로컬에서 쿠키가 전송되는지 테스트를 하기 위해서는 로컬 서버도 https로 구동해야 했다. 그래서 mkcert라는 라이브러리를 사용하여 postman으로 쿠키를 확인할 수 있도록 세팅했다. 1. mkcert로 인증서 만들기 1-1. 설치 npm install -g mkcert 1-2. CA 만들기 mkcert -install mkcert -CAROOT #CA 저장 위치 확인 1-3. 인증서 만들기 mkcert -cert-file [..
-
[MySQL] 문자열 자르기(left, substring, right)Server/MySQL 2023. 3. 24. 00:43
Left LEFT(str,len) 문자열 str(column)에서 가장 왼쪽에 있는 문자를 반환하거나 인자가 NULL인 경우 NULL을 반환합니다. mysql> SELECT LEFT('foobarbar', 5); -> 'fooba' Right RIGHT(str,len) 문자열 str(column)에서 가장 오른쪽에 있는 문자를 반환하거나 인수가 NULL인 경우 NULL을 반환합니다. mysql> SELECT RIGHT('foobarbar', 4); -> 'rbar' Substring = substr SUBSTRING(str,pos), SUBSTRING(str FROM pos), SUBSTRING(str,pos,len), SUBSTRING(str FROM pos FOR len) len 인수가 없는 형식은 ..
-
[MySQL] IF, CASE ~ WHEN, IFNULL, COALESCEServer/MySQL 2023. 3. 17. 22:54
IF Syntax : https://dev.mysql.com/doc/refman/8.0/en/if.html IF search_condition THEN statement_list [ELSEIF search_condition THEN statement_list] ... [ELSE statement_list] END IF CASE - WHEN Syntax : https://dev.mysql.com/doc/refman/8.0/en/case.html CASE case_value WHEN when_value THEN statement_list [WHEN when_value THEN statement_list] ... [ELSE statement_list] END CASE or CASE WHEN search_con..