공부(220)
-
BJ.1135 뉴스 전하기
채점 현황 (acmicpc.net) 채점 현황 www.acmicpc.net 문제 요약 모든 직원은 정확히 한명의 직속 상사. 트리구조 루트는 민식이 민식이는 자기 직속 부하에게 한번에 한 사람씩 전화를 함 각 부하는 그 밑의 직속에게 한번에 한 사람씩 전화를 검 모든 직원이 뉴스를 들을 때까지 계속됨 전화는 정확히 1분 걸림 모든 직원이 소식을 듣는 데 걸리는 시간의 최솟값을 구하라 민식의 번호는 0, 사원은 1부터 시작 입력 및 제약조건 첫째 줄 : 직원 수 N 1
2023.04.10 -
[Youtube 클론코딩 챌린지] 라우팅 복습
문제) /, /about, /contact, /login 4개의 주소에 대응하는 페이지 라우팅을 express를 이용해 구현하라. express에 대해서 복습하는 챌린지였는데, 너무 오래전에 했던 거라 기억이 잘 나지 않았다. [Youtube 클론코딩] Express 라우팅 (tistory.com) [Youtube 클론코딩] Express 라우팅 서버와 리퀘스트 서버는 24시간동안 연속해서 켜져있으며 웹페이지의 정보를 담고있는 일종의 컴퓨터이다. 웹페이지에 접근하기 위해서는 브라우저 주소창에 해당 웹페이지의 도메인 주소나 IP riam.tistory.com 이전에 올렸던 포스팅들을 보면서 다시 복습했고, 이제야 Express 라우팅에 대해서 이해하게 된 것 같다. 1. 서버 구동하기 express는 ex..
2022.12.20 -
BOJ 14890. 경사로
14890번: 경사로 (acmicpc.net) 14890번: 경사로 첫째 줄에 N (2 ≤ N ≤ 100)과 L (1 ≤ L ≤ N)이 주어진다. 둘째 줄부터 N개의 줄에 지도가 주어진다. 각 칸의 높이는 10보다 작거나 같은 자연수이다. www.acmicpc.net 이번 문제는 처음에 갈피를 못잡아서 시간이 많이 걸렸던 문제다. 문제 아래에 힌트가 있으니 여기서 아이디어를 얻어가면 된다. 그런데, 문제에서 빠진 조건이 하나 있다 바로 가로 세로 경사로를 겹칠 수 있다는 것. 예를 들어 n이 4이고 l이 2인 상황에서 0 3 0 0 2 2 2 3 3 2 2 2 0 2 0 0 위와 같은 경우 세로로 경사로를 놓으면 높이를 표시했을 때 다음과 같다. 0 0 0 0 0 2 0 0 0 1 0 0 0 0 0 0 ..
2022.11.26 -
[Youtube 클론코딩] Webpack 알아보기
이제 Front-end를 만들 차례다. 그러기 위해서는 Webpack이라는 것을 먼저 알아보자. webpack webpack webpack is a module bundler. Its main purpose is to bundle JavaScript files for usage in a browser, yet it is also capable of transforming, bundling, or packaging just about any resource or asset. webpack.js.org 우리는 백엔드를 개발하기 위해 Node JS를 선택했다. 거기서 JS의 최신 문법들을 어느 브라우저에서도 호환이 될 수 있는 보편적인 문법으로 바꿔주기 위해 Babel을 사용했다. 프론트엔드도 마찬가지로 최신..
2022.11.26 -
BOJ 14888. 연산자 끼워넣기
14888번: 연산자 끼워넣기 (acmicpc.net) 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, www.acmicpc.net 문제 자체는 평범한 난이도의 문제다. permutation을 이용해 각 연산자의 배치 방법을 전부 시도해보면 된다. 그런데 이 문제를 풀면서 깨달은 점 한가지가 있어서 포스팅을 해본다. 이 문제는 사실 예전에 한 번 풀어봤었던 문제인데 이번에 새로 푸니까 시간이 세배 이상 오래 걸리기에 무슨 이유에서인지 하나씩 시도해봤는데 결과는 permutations를..
2022.11.24 -
[Youtube 클론코딩] Video 업로드, mongoose populate, 접근제어
업로드 기능 자체는 이전에 작성했던 프로필 사진 업로드와 같은 기능을 사용해 비디오도 업로드 가능하다. 유저 및 비디오 스키마 변경 다만, 비디오를 업로드 한 사람만 수정 및 삭제할 수 있는 권리를 부여하기 위해서는 두 스키마의 연결이 불가피하다. DB를 배워보면 각 DB를 join 하기 위해서는 unique key를 이용해야 하는데 mongoDB는 자체적으로 _id 라는 unique key를 발행해서 관리한다. 따라서, 비디오의 스키마에서는 업로드 한 사람의 _id를 저장하고 유저의 스키마에서는 해당 유저가 업로드 한 비디오의 _id 들을 배열 형태로 저장하면 된다. 여기서 특이한 점은, 데이터의 type을 지정할 때, mongoose.Schema.Types.ObjectId 라고 지정했는데 그 이유는 ..
2022.11.24