반응형

분류 전체보기 268

[파이썬, Python] 백준 15650: N과 M (2)

문제 https://www.acmicpc.net/problem/15650 15650번: N과 M (2) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 코드 n, m = map(int, input().split()) s = [] def dfs(start): if len(s) == m: print(' '.join(map(str,s))) return for i in range(start, n+1): if i not in s: s.append(i) dfs(i+1) s.pop() dfs(1) 설명 https://looancheong.tistory..

[JavaScript, Node.js] 유튜브 클론 정리 6장 (2) - MongoDB, Mongoose

머리글 이번 시간에는 MongoDB에 대해서 알아보고 연결까지 해보도록 하자. MongoDB? https://www.mongodb.com/ MongoDB: The Developer Data Platform Get your ideas to market faster with a developer data platform built on the leading modern database. MongoDB makes working with data easy. www.mongodb.com MongoDB는 다목적의 document 기반의 분산 데이터베이스다. 일반적으로 많은 데이터베이스는 sql 기반이다. 즉, 엑셀과 비슷한 형태의 행 기반 데이터베이스다. 하지만 MongoDB는 문서 기반의 데이터베이스다. Mong..

[JavaScript, Node.js] 유튜브 클론 정리 6장 (1) - GET, POST, 절대/상대 주소

머리글 이번 시간에는 데이터베이스에 접근하는 방법을 알아보자. How? 우선은 앞서 만들었던 가짜 비디오 데이터베이스를 다시 사용하자. const videos = [ { title: "First Video", rating: 5, comments: 2, createdAt: "2 mins ago", views: 59, id: 1, }, { title: "Second Video", rating: 5, comments: 2, createdAt: "2 mins ago", views: 59, id: 1, }, { title: "Third Video", rating: 5, comments: 2, createdAt: "2 mins ago", views: 59, id: 1, }, ]; 그리고 홈페이지에 접속하면 비디오들..

[JavaScript, Node.js] 유튜브 클론 정리 5장 (3) - MVP.css, Conditionals, Iteration, Mixins

머리글 이번 시간에는 간편하게 CSS 작업을 해주는 MVP.css와 조건문, 반복문, 그리고 Pug의 기능인 Mixin에 대해서 알아보자. MVP.css 아무래도 개발 중인 화면은 늘 못생겼다. 그래서 이를 보완하기 위해 css 작업을 간단하게 도와주는 스크립트를 하나 써보려고 한다. 바로 MVP.css다. https://andybrewer.github.io/mvp/ MVP.css - Minimalist stylesheet for HTML elements A decent MVP in no time More building and less designing with "set and forget" styling. "Uber for X" brainstorming session andybrewer.github...

[JavaScript, Node.js] 유튜브 클론 정리 5장 (2) - Partials, Templates

머리글 이번 시간에는 반복 작성을 피하기 위한 Pug의 기능인 Partials와 Templates 사용 방법에 대해서 알아보자. 우선 모든 페이지에 들어갈 footer가 하나 있다고 하자. footer © #{new Date().getFullYear()} Mytube 모든 페이지 하단에는 올해의 연도와 저작권을 표시하는 마크를 삽입할 예정이다. 그렇다면 우리는 모든 페이지에 이 코드를 넣어줘야 할까? 당연히 아니다. Partials 우선 위의 코드를 footer.pug 파일에 넣어서 저장해 주자. 그리고 우리는 footer를 사용할 페이지에 다음과 같이 작성해 주면 된다. doctype html html(lang="ko") head title Mytube body h1 Watch Page include ..

[JavaScript, Node.js] 유튜브 클론 정리 5장 (1) - HTML, Pug

머리글 오늘은 라우터를 통해 HTML 페이지를 렌더링 하는 방법을 알아보자. HTML 렌더링 라우터를 통해 Html을 리턴하는 방법에는 2가지가 있다. 1. res.send(HTML 내용) 을 통해 렌더링 하는 방법 const see = (req, res) => res.send("Hi!"); 이런 방식으로 렌더링이 가능하지만, Html의 소스 코드가 복잡해질수록 불편한 방법이 될 것이다. 2. Pug를 사용해서 렌더링 하는 방법 Pug는 템플릿 엔진이다. 템플릿을 통해 view를 만드는 작업을 도와준다. 우선 Pug를 설치하자. npm i pug 그리고 express가 html 헬퍼로 pug를 사용하게 설정해줘야 한다. 서버 파일로 가서 다음 세팅을 해주자. app.set("view engine", "p..

[파이썬, Python] 백준 1475: 방 번호

문제 https://www.acmicpc.net/problem/1475 1475번: 방 번호 첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 코드 n = input() idx = list(0 for i in range(9)) for i in range(len(n)): if n[i] != '9': idx[int(n[i])] += 1 else: idx[6] += 1 idx[6] = (idx[6] + 1) // 2 print(max(idx)) 설명 우선 방 번호를 입력받는다. 이후 0부터 8까지의 리스트를 하나 생성해 준다.(9는 6으로 취급) 입력받은 숫자의 수가 9가 아니라면 각 수의 인덱스에 맞는 숫자를 1개 올려주고, 9라면 ..

[파이썬, Python] 백준 15649: N과 M (1)

문제 https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 코드 n, m = map(int, input().split()) s = [] def dfs(): if len(s) == m: print(' '.join(map(str,s))) return for i in range(1, n+1): if i not in s: s.append(i) dfs() s.pop() dfs() 설명 처음에는 간단한 다중 반복문으로 구성하려고 했으나 수가 커질수록 불가능에..

[JavaScript, Node.js] 유튜브 클론 정리 4장 (2) - URL 파라미터

머리글 이번 시간에는 URL 파라미터에 대해서 알아보자. URL 파라미터? 우선 설명을 위해 라우터의 일부를 작성했다. videoRouter.get("/upload", upload); videoRouter.get("/:id", watch); videoRouter.get("/:id/edit", edit); videoRouter.get("/:id/delete", delete); 각 비디오를 볼 수 있는 페이지, 수정 페이지, 삭제 페이지다. 여기서 중요한 건 id 앞에 붙어있는 ':'이다. 이걸 우리는 파라미터라고 부른다. URL에 변수를 넣을 수 있게 해 준다. 만약 파라미터가 없다면 우리는 모든 동영상의 id에 대해 get을 통해 페이지를 생성해주어야 한다. 그런데, 여기서 주의해야 할 점이 있다. 만약..

반응형