반응형

전체 글 268

[파이썬, Python] 백준 11279: 최대 힙

문제 https://www.acmicpc.net/problem/11279 11279번: 최대 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 코드 import heapq import sys input = sys.stdin.readline n = int(input()) arr = list() for i in range(n): x = int(input()) if x == 0: if not arr: print("0") else: print(-heapq.heappop(arr)) else: heapq.heappush..

[파이썬, Python] 백준 15651: N과 M (3)

문제 https://www.acmicpc.net/problem/15651 15651번: N과 M (3) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 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): s.append(i) dfs() s.pop() dfs() 설명 앞서 풀었던 문제와 굉장히 유사하다. https://looancheong.tistory.com/14..

[JavaScript, Node.js] 유튜브 클론 정리 7장 (1) - Create Account

머리글 이번 시간에는 계정 생성을 해보자. 유저 스키마 생성 우선 유저의 정보를 담은 스키마를 생성하자. import mongoose from "mongoose"; const userSchema = new mongoose.Schema({ email: { type: String, required: true, unique: true }, username: { type: String, required: true, unique: true }, password: { type: String, required: true }, name: { type: String, required: true }, location: String, }); const User = mongoose.model("User", userSchema..

[파이썬, Python] 백준 11656: 접미사 배열

문제 https://www.acmicpc.net/problem/11656 11656번: 접미사 배열 첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000보다 작거나 같다. www.acmicpc.net 코드 s = input() word = list() for i in range(len(s)): word.append(s[i:]) for i in sorted(word): print(i) 설명 우선 단어를 입력받고, 접미사를 넣을 리스트를 만든다. 그리고 입력받은 단어의 부분 단어(접미사)를 word에 추가해 준다. 사전순으로 정렬하여 출력형식에 맞게 출력해 준다.

[파이썬, Python] 백준 7785: 회사에 있는 사람

문제 https://www.acmicpc.net/problem/7785 7785번: 회사에 있는 사람 첫째 줄에 로그에 기록된 출입 기록의 수 n이 주어진다. (2 ≤ n ≤ 106) 다음 n개의 줄에는 출입 기록이 순서대로 주어지며, 각 사람의 이름이 주어지고 "enter"나 "leave"가 주어진다. "enter"인 경우는 www.acmicpc.net 코드 import sys input = sys.stdin.readline n = int(input()) man = {} for i in range(n): a, b = input().split() if b == 'enter': man[a] = b else: del man[a] ans = man.keys() for i in sorted(ans, revers..

[파이썬, Python] 백준 14501: 퇴사

문제 https://www.acmicpc.net/problem/14501 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 코드 n = int(input()) t = list() p = list() dp = [0] * (n+1) for _ in range(n): a, b = map(int, input().split()) t.append(a) p.append(b) for i in range(n-1, -1, -1): if t[i] + i > n: dp[i] = dp[i+1] else: dp[i] = max(p[i] + dp[i + t[i]], dp[i+1]) print(dp[0]) 설명 우선 입력값을 다 받아주고 dp 리스트를 [0]으로 n+1개 만들어..

[파이썬, Python] 백준 2217: 로프

문제 https://www.acmicpc.net/problem/2217 2217번: 로프 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하 www.acmicpc.net 코드 import sys input = sys.stdin.readline n = int(input()) rope = sorted([int(input()) for i in range(n)], reverse = True) res = list() for i in rope: res.append(i * (len(res) + 1)) print(max(res)) 설명 우선 n과 로프의 값을 각각..

[파이썬, Python] 백준 1904: 01타일

문제 https://www.acmicpc.net/problem/1904 1904번: 01타일 지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이 www.acmicpc.net 코드 n = int(input()) dp = [0] * 1000001 dp[1] = 1 dp[2] = 2 for i in range(3, n+1): dp[i] = (dp[i-1] + dp[i-2]) % 15746 print(dp[n]) 설명 경우의 수에 대해서 생각을 해보아야 한다. 우선 길이가 1인 경우는 1이 들어가는 1가지 경우밖에 없다. 길이가 2인 경우는 00 과 11 밖에 없다. 길이가..

[파이썬, Python] 백준 9655: 돌 게임

문제 https://www.acmicpc.net/problem/9655 9655번: 돌 게임 상근이가 게임을 이기면 SK를, 창영이가 게임을 이기면 CY을 출력한다. www.acmicpc.net 코드 n = int(input()) if n % 2 == 0: print("CY") else: print("SK") n = int(input()) dp = [''] * 1001 dp[1] = "SK" dp[2] = "CY" dp[3] = "SK" for i in range(4, n+1): if dp[i-1] == "SK": dp[i] = "CY" else: dp[i] = "SK" print(dp[n]) 설명 [풀이 1] 간단하게 생각하면 쉽게 풀리는 문제이다. n이 홀수라면 상근이가, n이 짝수라면 창영이가 게임..

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

머리글 이번 시간에는 데이터 베이스 삭제하는 방법과 검색하는 방법에 대해서 알아보자. Delete Database 우선 적당히 delete 페이지로 이어질 링크를 하나 생성해 주자. a(href=`{video.id}/delete`) Delete Video 없는 라우터를 사용했으므로, 라우터도 하나 생성해 주자. import { ... deleteVideo, } from "../controllers/videoController"; ... videoRouter.route("/:id([0-9a-f]{24})/delete").get(deleteVideo); 이제 컨트롤러도 생성해 보자. export const deleteVideo = async (req, res) => { const { id } = req.pa..

반응형