반응형

전체 글 268

[파이썬, Python] 백준 1912: 연속합

문제 https://www.acmicpc.net/problem/1912 1912번: 연속합 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. www.acmicpc.net 코드 n = int(input()) num = list(map(int,input().split())) dp = [-1001] * (n+1) for i in range(n): dp[i+1] = max(num[i], num[i] + dp[i]) print(max(dp)) 설명 우선 입력을 각각 받아준다. 그리고 dp를 -1001의 n+1개로 초기화 해준다. 수의 범위가 -1000

[JavaScript, Node.js] 유튜브 클론 정리 6장 (7) - Middleware(mongoose)

머리글 이번 시간에는 Middleware에 대해서 알아보자. Middleware 이미 express에서 한 번 사용을 했던 적이 있다. 무언가를 하기 전에 작업을 하고 next() 함수를 호출하여 다음 작업으로 넘어간다. Mongoose에서도 비슷하게 작동한다. 비디오 스키마에 저장을 하기 전에 작동할 미들웨어를 하나 생성해 보도록 하겠다. videoSchema.pre("save", async function () { this.hashtags = this.hashtags[0] .split(",") .map((word) => (word.startsWith("#") ? word : `#${word}`)); }); 우선 "save"의 경우 우리가 save 할 때, 그리고 'pre'의 경우 저장 전에 미들웨어를..

[파이썬, Python] 백준 2156: 포도주 시식

문제 https://www.acmicpc.net/problem/2156 2156번: 포도주 시식 효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규 www.acmicpc.net 코드 n = int(input()) juice = [int(input()) for _ in range(n)] + [0] dp = [0] * (n+2) dp[1] = juice[0] dp[2] = dp[1] + juice[1] if n >= 3: for i in range(3, n+1): dp[i] = max(juice[i-1]+dp[i-2], juice[i-2] + juice[i-1] + dp..

[JavaScript, Node.js] 유튜브 클론 정리 6장 (6) - Database 수정

머리글 이번 시간에는 데이터베이스에 있는 데이터를 수정해 보자. Edit Database 우선 edit 페이지를 처리할 컨트롤러를 생성하자. const getEdit = async(req, res) => { const {id} = req.params; const video = await Video.findById(id); if (!video) { return res.render("404", {pageTitle: "Video not found." }); } return res.render("edit", {pageTitle: `Editing ${video.title}`, video}); }; 비디오가 존재한다면, 비디오의 페이지를 띄워주고 그렇지 않다면 404 페이지를 렌더링 한다. 그리고 edit 페이지를..

[파이썬, Python] 백준 10867: 중복 빼고 정렬하기

문제 https://www.acmicpc.net/problem/10867 10867번: 중복 빼고 정렬하기 첫째 줄에 수의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째에는 숫자가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. www.acmicpc.net 코드 n = int(input()) num = list(map(int, input().split())) ans = [] for i in num: if i not in ans: ans.append(i) for i in sorted(ans): print(i, end=' ') n = int(input()) num = set(map(int, input().split())) for i in sorted(num): print(i, ..

[파이썬, Python] 백준 2667: 단지번호붙이기

문제 https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net 코드 from collections import deque dx = [0, 0, 1, -1] dy = [1, -1, 0, 0] n = int(input()) home = list() ans = [] def bfs(home, a, b): cnt = 1 queue = deque() queue.append((a, b)) home[a][b] = 0 while queue: x, y = queue.pop..

[JavaScript, Node.js] 유튜브 클론 정리 6장 (5) - Database 생성, 저장

머리글 이번 시간에는 데이터베이스를 생성해 보자. DataBase 우선 기존에 작성했던 form을 조금 수정해서 비디오 스키마에 맞는 정보를 입력받을 수 있게 해 보자. ... block content form(method="POST") input(placeholder="Title", required, type="text", name="title") input(placeholder="Description", required, type="text", name="description") input(placeholder="Hashtags", required, type="text", name="hashtags") input(type="submit", value="Upload Video") 그리고 라우터를 수정해..

[파이썬, Python] 백준 1012: 유기농 배추

문제 https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 코드 from collections import deque dx = [0, 0, 1, -1] dy = [1, -1, 0, 0] t = int(input()) def bfs(land, a, b): queue = deque() queue.append((a, b)) land[a][b] = 0 while queue: x, y = queue.popleft() for i in range(4): nx = x+dx[i..

[JavaScript, Node.js] 유튜브 클론 정리 6장 (4) - Query, Async, Await

머리글 이번 시간에는 쿼리를 검색해 보자. Query 우선 비디오 컨트롤러에 비디오 모델을 import 해주자. import Video from "../models/Video"; 그리고 mongoose의 공식 문서에서 Query와 관련된 자료를 한 번 보자. https://mongoosejs.com/docs/queries.html Mongoose v7.0.3: Queries Mongoose models provide several static helper functions for CRUD operations. Each of these functions returns a mongoose Query object. A mongoose query can be executed in one of two ways. ..

[JavaScript, Node.js] 유튜브 클론 정리 6장 (3) - CRUD, Schema, Model

머리글 이번 시간에는 CRUD에 대해 알아보고, Schema와 Model에 대해서 알아보자. CRUD 1. C(Create) 생성 2. R(Read) 읽기 3. U(Update) 수정 4. D(Delete) 삭제 이 4가지를 의미하는 단어를 CRUD라고 한다. 이는 대부분의 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능을 묶은 것이다. 우선 기능을 만들기 전에 Model을 하나 생성해 보자. Model, Schema 우리는 mongoose를 통해 DB와 소통하고 있다. 따라서 mongoose에게 우리의 애플리케이션에 있는 데이터의 형태를 알려줄 필요가 있다. 구체적인 값을 지정하는 것이 아닌 어떤 타입을 가지는지 알려주면 된다. 이때, model의 생김새를 Schema라고 한다. 그럼 비디오 모델..

반응형