본문 바로가기

분류 전체보기

(252)
BOJ) 평범한 배낭 https://www.acmicpc.net/problem/12865 12865번: 평범한 배낭 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000) www.acmicpc.net 오랜만에 알고리즘 문제를 풀다 처음 마주친 "냅색 알고리즘"을 이용해 풀어야하는 문제이다. 그리디 알고리즘을 생각했으나 조금만 생각해보면 그리디는 최적의 해를 구할 수 없게된다. 우선 냅색 알고리즘은 물건을 쪼개어 부분적으로 담을 수 있는 경우를 고려하거나 또는 각 물건을 선택하거나 선택하지 않았을 때를 고려하는 경우 사용할 수 있..
파이선) 어두운 건 무서워 - BOJ (2D Array prefix sum, and 블로그의 방향성) https://www.acmicpc.net/problem/16507 r, c, q = map(int, input().split()) arr = [] for _ in range(r): arr.append(list(map(int, input().split()))) dp = [[0 for _ in range(c+1)] for _ in range(r+1)] # print(dp) for i in range(1, r+1): for j in range(1, c+1): dp[i][j] = -dp[i-1][j-1] + dp[i][j-1] + dp[i-1][j] + arr[i-1][j-1] for _ in range(q): r1, c1, r2, c2 = map(int, input().split()) num = dp[r2]..
백준) 이건 꼭 풀어야 해! - BOJ https://www.acmicpc.net/problem/17390 17390번: 이건 꼭 풀어야 해! [2, 5, 1, 2, 3]을 비내림차순으로 정렬하면 [1, 2, 2, 3, 5]이다. www.acmicpc.net import sys input = sys.stdin.readline n, q = map(int, input().split()) arr = [0]+list(map(int, input().split())) arr.sort() dp = [] for i in arr: if not dp: dp.append(i) else: dp.append(dp[-1] + i) # print(dp) answer = [] for _ in range(q): l, r = map(int, input().split()) r..
파이썬) 두 배열의 합 - BOJ https://www.acmicpc.net/problem/2143 2143번: 두 배열의 합 첫째 줄에 T(-1,000,000,000 ≤ T ≤ 1,000,000,000)가 주어진다. 다음 줄에는 n(1 ≤ n ≤ 1,000)이 주어지고, 그 다음 줄에 n개의 정수로 A[1], …, A[n]이 주어진다. 다음 줄에는 m(1 ≤ m ≤ 1,000)이 주어지고, 그 www.acmicpc.net 문제가 원하는바는 다음과 같다. 첫번째 배열 arr1 i부터 ,j까지의 합과 arr2의 k,l까지의 합이 t인 개수를 구하는 문제이다. 이 문제는 어떻게 풀어나가면 좋을까 단순히 생각해보자 arr1의 0번째부터. 0번째, 0번째부터 1번째 ... 1부터 1까지, 1부터 2까지 .... n부터 n까지 arr2의 0 - ..
파이썬) 좋다 - BOJ https://www.acmicpc.net/problem/1253 1253번: 좋다 첫째 줄에는 수의 개수 N(1 ≤ N ≤ 2,000), 두 번째 줄에는 i번째 수를 나타내는 Ai가 N개 주어진다. (|Ai| ≤ 1,000,000,000, Ai는 정수) www.acmicpc.net 문제는 arr[i]가 arr에 있는 수들 중 두개의 수의 합으로 만들어 질수있다면 arr[i]는 "좋다"라고 한다 arr에 있는 "좋다"의 갯수를 구하는 문제이다. 애초에 문제 설명부터 투포인터를 사용하세요.라고 설명이 되어있는 듯하다. 그러나 |Ai| ≤ 1,000,000,000, Ai는 정수)라고 되어있는 조건문 때문에 처음에 투포인터를 생각했다가 이분탐색으로 생각을 돌렸다. 나는 투 포인터로 풀었기 때문에 투 포인터로 ..
자바스크립트,react) video스트림 켜기(끈 상태) 비디오 스트림이란 자바스크립트에서 말하는 비디오 스트림이란 웹 브라우저에서 비디오 데이터를 스트리밍하는데 사용되는 개념이다. 일반적으로 웹캠이나 마이크로폰(마이크)과 같은 미디어 장치에서 생성된 미디어 데이터를 실시간으로 전송하거나(with P2P) 원격 서버에서 비디오 데이터를 다운로드하고 재생하는데 사용됩니다. navigator.mediaDevices.getUserMedia({ video: true, audio: true }) .then(function(stream) { // 비디오 스트림이 준비되면 처리 // stream 객체를 비디오 요소나 오디오 요소의 srcObject에 할당하여 재생 가능 videoElement.srcObject = stream; }) .catch(function(error)..
파이선) 파이프 옮기기 - BOJ https://www.acmicpc.net/problem/17070 17070번: 파이프 옮기기 1 유현이가 새 집으로 이사했다. 새 집의 크기는 N×N의 격자판으로 나타낼 수 있고, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 (r, c)로 나타낼 수 있다. 여기서 r은 행의 번호, c는 열의 www.acmicpc.net 이 문제는 총 세 번의 재귀함수로 풀어봤었다. 그러다 모두 80퍼센트 쯤에서 시간초과가 발생했다. 첫번째 코드 import sys input = sys.stdin.readline n = int(input()) arr = [] for _ in range(n): arr.append(list(map(int, input().split()))) answer = 0 def dfs(x..
파이썬) 말이 되고픈 원숭이 - BOJ https://www.acmicpc.net/problem/1600 1600번: 말이 되고픈 원숭이 첫째 줄에 정수 K가 주어진다. 둘째 줄에 격자판의 가로길이 W, 세로길이 H가 주어진다. 그 다음 H줄에 걸쳐 W개의 숫자가 주어지는데, 0은 아무것도 없는 평지, 1은 장애물을 뜻한다. 장애물이 있 www.acmicpc.net from collections import deque import sys input = sys.stdin.readline k = int(input()) w, h = map(int, input().split()) w, h = h, w arr = [] for _ in range(w): arr.append(list(map(int, input().split()))) # visit = [[..