본문 바로가기
분류 전체보기86
백준 최소비용 구하기 성공 1916 javascript 1916번: 최소비용 구하기 첫째 줄에 도시의 개수 N(1 ≤ N ≤ 1,000)이 주어지고 둘째 줄에는 버스의 개수 M(1 ≤ M ≤ 100,000)이 주어진다. 그리고 셋째 줄부터 M+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 www.acmicpc.net 처음에는 O(N)인 우선순위 큐를 만들어 돌렸으나 시간초과가 났다.. class priorityQueue { constructor() { this.queue = []; } enQueue(elements) { let queueChange = false; for (let i = 0; i elements[0]) { this.queue.splic.. 2022. 6. 30.
Index Signature, 제네릭 keyof 제네릭과 keyof 를 사용한 경우 function test(a:T,b:U){ return "aaaa "+a[b] } test({name:"test"},'name') Index Signature를 사용한 경우 Index Signature는 객체가 형식이며, 객체의 타입을 명시해야 하는 경우 사용할 수 있습니다. interface testType { [key: string]: string } function test2(a:testType,b:string){ return "aaaa "+a[b]; } test2({name:"test"},'name') 2022. 6. 29.
typescript string literal 과 string enums의 차이 literal 과 enum의 차이는 javascript로 변환했을 때 코드의 유무 입니다. Typescripts Transpiler는 코드를 변환하는 동안 type 확인을 위해서만 사용하기 때문입니다. 다만 대용으로 const를 enum 앞에 붙여 const enum 형식으로 사용하면 타입 확인에만 사용할 수 있습니다. typescript 예제 코드 // 리터럴 타입 type MyKeyType1 = 'foo' | 'bar' | 'baz'; // enum 타입 enum MyKeyType2 { FOO = 'foo', BAR = 'bar', BAZ = 'baz' } // const를 사용한 enum 타입 const enum MyKeyType3 { FOO = 'foo', BAR = 'bar', BAZ = 'ba.. 2022. 6. 29.
콘센트 23843 python 23843번: 콘센트 광재는 전자기기 대여사업을 시작했다. 퇴근하기 전에 다음날 손님들에게 빌려줄 N개의 전자기기를 충전하려 한다. 사용 가능한 콘센트는 M개가 있고, 성능은 모두 동일하다. 전자기기들은 한 www.acmicpc.net 두가지 방식으로 풀었다. # 예제 입력 # N M 5 2 # arr 1 4 4 8 1 # 예제 출력 # 9 5 2 1 4 4 8 1 count : 1 before => arr : [1, 1, 4, 4, 8] / taskList : [] after => arr : [1, 1, 4] / taskList : [3, 7] count : 2 before => arr : [1, 1, 4] / taskList : [3, 7] after => arr : [1, 1, 4] / taskLi.. 2022. 6. 29.
특정한 최단 경로 1504 javascript 1504번: 특정한 최단 경로 첫째 줄에 정점의 개수 N과 간선의 개수 E가 주어진다. (2 ≤ N ≤ 800, 0 ≤ E ≤ 200,000) 둘째 줄부터 E개의 줄에 걸쳐서 세 개의 정수 a, b, c가 주어지는데, a번 정점에서 b번 정점까지 양방향 길이 존 www.acmicpc.net 다익스트라로 푸는 문제 다만 자바스크립트로 풀려면 우선순위 큐를 직접 구현해야한다. const fs = require("fs"); const stdin = ( process.platform === "linux" ? fs.readFileSync("/dev/stdin").toString() : `4 6 1 2 3 2 3 3 3 4 1 1 3 5 2 4 5 1 4 4 2 3` ).split("\n"); const input.. 2022. 6. 29.
Puyo Puyo 11559번: Puyo Puyo 총 12개의 줄에 필드의 정보가 주어지며, 각 줄에는 6개의 문자가 있다. 이때 .은 빈공간이고 .이 아닌것은 각각의 색깔의 뿌요를 나타낸다. R은 빨강, G는 초록, B는 파랑, P는 보라, Y는 노랑이다. www.acmicpc.net bfs에 조건이 조금 들어간 문제이다. `같은 색상으로 연결된 구슬 4개이상 동시에 터지는게 한 사이클` 이라는것을 생각하고 풀면 어렵지 않게 풀 수 있다. const fs = require("fs"); const stdin = ( process.platform === "linux" ? fs.readFileSync("/dev/stdin").toString() : `...... ...... ...... ...... ...... ...... .. 2022. 6. 22.
Docker 명령어(volume) 자주쓰는 볼륨 관련 명령어 ❯ docker volume Usage: docker volume COMMAND Manage volumes Commands: create Create a volume inspect Display detailed information on one or more volumes ls 볼륨 리스트 prune 사용되지 않는 볼륨들 모두 삭제 rm 볼륨들을 지울 때 명명된 볼륨 생성(볼륨을 지우지 않는한 데이터 유지) ❯ docker volume create test test ❯ docker volume ls DRIVER VOLUME NAME local test container to container 명명된 볼륨 공유 위에서 생성된 test 볼륨을 공유하는 node이미지 기반 컨테이너 .. 2022. 6. 20.
docker 기본 명령어 docker image다운로드(pull) ex) docker pull [OPTIONS] NAME[:TAG|@DIGEST] docker pull node:latest docker image 검색(search) ex) docker search [OPTIONS] TERM docker search node Docker hub로 부터 사용가능한 이미지를 찾습니다. Docker hub : 사용자들간 이미지를 공유 할 수 있는 환경 docker image 생성(build) ex) docker build [OPTIONS] PATH | URL | - # path 로 빌드시 docker build . # URL로 빌드시 docker build github.com/creack/docker-firefox docker imag.. 2022. 6. 19.
Docker - volume Container의 Layer에 데이터를 저장할 수 있다는 것을 알고 있다. 다만, 여기에는 몇 가지 문제점이 있다. Container가 삭제되면 Data도 같이 삭제됩니다. 다른 프로세스에서 Container에 저장된 Data를 사용하기 어렵다. Container의 Layer에는 Container가 실행 중인 호스트와 밀접하게 연결되며, 데이터를 다른 곳으로 쉽게 옮길 수 없다. Container의 Layer에 데이터를 저장하기 위해서는 파일시스템을 관리하는 스토리지 드라이버가 필요하다. 스토리지 드라이버는 Linux 커널을 사용하여 공용 파일 시스템을 제공합니다. 이 기능은 호스트의 파일시스템에 직접 쓰는 데이터 volume보다 성능이 떨어진다. 도커는 데이터를 안전하게 유지시킬 수 있는 방법으로 v.. 2022. 6. 19.
Docker - 레이어(layer) 도커 이미지는 코드의 변경 사항이 있을 때 마다 새로 만들어야합니다 여기서 레이어라는 개념이 등장합니다. 이미지를 빌드하거나 이미지를 다시 빌드할 때 변경된 부분의 명령과 그 이후의 모든 명령이 다시 빌드 된다는 의미입니다. Using cache(캐쉬 사용)이라는 메시지를 볼 수 있습니다. 도커는 기본적으로 이 모든 명령어에 대해 다시 실행했을 때의 결과가 이전과 동일하다는 것을 인식했기 때문입니다. 동일한 작업 디렉토리를 가지고 있고 복사한 코드는 전혀 변경되지 않았으며 새 파일도 없고 변경된 파일도 없으므로 도커는 실제로 그 명령을 다시 거칠 필요가 없다고 추론합니다. 대신 이미지를 빌드할 때마다 도커는 모든 명령 결과를 캐시하고 이미지를 다시 빌드할 때 명령을 다시 실행할 필요가 없으면 캐시된 결과.. 2022. 6. 19.
Docker - Dockerfile Dockerfile 이란 dockerfile은 docker build 명령어로 image를 생성 시 사용되는 설정 값 입니다. # node가 설치된 docker 이미지를 가져온다. From node # /app 폴더 내부에서 실행될 것임을 설정한다. WORKDIR /app # 현재 Dockerfile 경로에 있는 파일들 전부를 도커 이미지 내부 /app 경로에 복사한다. COPY . /app # package.json 파일을 설치 RUN npm install # 만약 node 앱에 80포트로 서버를 열어놨다면 container의 외부 포트를 설정해주어야한다. EXPOSE 80 # 마지막 server.js 파일을 실행한다. RUN node server.js # CMD의 경우 이미지 기반으로 컨테이너가 실행.. 2022. 6. 19.
Docker - Container, Image 앞서 언급했듯이 도커로 작업할 때 컨테이너뿐만 아니라 이미지도 가지고 있습니다. 그 차이점은 무엇이며, 둘 모두가 필요한 이유는 무엇일까요? 컨테이너는 애플리케이션, 웹사이트, 노드 서버, 애플리케이션을 실행하는 전체 환경 등, 무엇이든 포함하는 작은 패키지라는 것입니다. 즉, 컨테이너에 소프트웨어 실행할 수 있는 앱이 존재합니다. 결국 그 앱을 여러분이 실행하는 겁니다. docker build 를 통해 이미지를 생성 할 수 있습니다. 이 이미지를 기반으로 여러 컨테이너를 만들 수 있습니다. 예를 들어, NodeJS 웹 서버 애플리케이션의 경우 한 번만 정의하면, 다른 시스템과 다른 서버에서 여러 번 실행할 수 있습니다. 이미지는 모든 설정 명령과 모든 코드가 포함된 공유 가능한 패키지입니다. 컨테이너는.. 2022. 6. 19.