일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 다이나믹프로그래밍
- 탑다운
- 주석
- XML주석
- 영어말하기
- 안드로이드주석
- 안드로이드
- 메모이제이션
- dynamicProgramming
- dp
- 오픽
- 오픽노잼
- 오픽점수잘받는방법
- 피보나치수열
- XML
- 이진탐색
- fibo
- opic
- 디피
- 영어회화
- English
- 이진탐색 #나무 자르기
- 오픽공부법
- ㅂ
- 바텀업
- topdown
- 오픽노잼공부방법
- 오픽가격
- stack 스택
목록분류 전체보기 (298)
RUBY
출처:: www.acmicpc.net/problem/1753 분류:: 다익스트라 1. 문제 이해 및 해결과정 2. 풀이방법 1. 다익스트라 #최단경로 #https://www.acmicpc.net/problem/1753 import sys import heapq sys.stdin = open("input.txt","r") input=sys.stdin.readline v,e=map(int,input().split()) #정점의 개수, 간선의 개수 start=int(input()) graph = [[] for _ in range(v+1)] visited = [False]*(v+1) INF=1e9 dist=[INF]*(v+1) for _ in range(e): a,b,c=map(int,input().split(..
출처:: www.acmicpc.net/problem/14719 분류:: 1. 문제 이해 및 해결과정 - 담기는 물의 양을 계산해서 더한다 - 물이 담기기 위해서는 현재보다 양 쪽의 블럭보다 낮아야한다. 2. 풀이방법 #빗물 #https://www.acmicpc.net/problem/14719 import sys sys.stdin = open("input.txt","r") h,w=map(int,input().split()) block=list(map(int,input().split())) rain=0 for i in range(len(block)): topleft=max(block[:i+1]) # 현재를 기준으로 왼쪽에서 가장 높은 블록 topright=max(block[i:]) # 현재를 기준으로 오른쪽..
출처:: programmers.co.kr/learn/courses/30/lessons/68644 분류:: 조합 1. 문제 이해 및 해결과정 2. 풀이방법 from itertools import combinations def solution(numbers): answer=set() selected = list(combinations(numbers,2)) for x,y in selected: answer.add(x+y) answer=list(answer) answer.sort() return answer 3. 오답원인 4. 알게된 점 set 은 add로 원소를 추가함
출처:: programmers.co.kr/learn/courses/30/lessons/42748 분류:: 문자열 1. 문제 이해 및 해결과정 2. 풀이방법 def solution(array, commands): answer = [] for i in range(len(commands)): s=commands[i][0] e=commands[i][1] k=commands[i][2] sub=array[s-1:e] sub.sort() answer.append(sub[k-1]) return answer 3. 오답원인 4. 알게된 점
출처:: www.acmicpc.net/problem/1806 분류:: 구간 합(prefix sum) , 투포인터 1. 문제 이해 및 해결과정 5 10 1 2 3 4 5 # 3,4,5(12) => 3 10 10 1 1 1 1 1 1 1 1 1 10 # 10 -> 1 2. 풀이방법 1. python 투포인터 #부분합 #https://www.acmicpc.net/problem/1806 import sys sys.stdin = open("input.txt","r") n,m=map(int,input().split()) #n,목표 arr=list(map(int,input().split())) s,e=0,0 sum=0 sol=1e9 tmp=0 for s in range(n): while e=m: #부분합의 차이가 m..
Manually installing incompatible versions is known to cause hard-to-debug issues . If you would prefer to ignore this check, add SKIP_PREFLIGHT_CHECK=true to an .e nv file in your project. That will permanently disable this message but you might encounter other issues. To fix the dependency tree, try following the steps below in the exact order: 1. Delete package-lock.json (not package.json!) an..
출처::https://www.acmicpc.net/problem/14503 분류:: 시뮬레이션 1. 문제 이해 및 해결과정 2. 풀이방법 1. python #로봇 청소기 #https://www.acmicpc.net/problem/14503 import sys sys.stdin = open("input.txt","r") n,m=map(int,input().split()) r,c,d=map(int,input().split()) board=[list(map(int,input().split())) for _ in range(n)] dh=[-1,0,1,0] dw=[0,1,0,-1] board[r][c]=2 #현재 위치를 청소한다 cnt=1 def solve(h,w,d): global cnt while True: ..
구간 합 문제 : 연속적으로 나열된 n개의 수가 있을 때, 특정 구간의 모든 수를 합한 값을 구하는 문제 - m개의 쿼리, 매번 구간 합을 계산하면 => O(NM) 구간 합 빠르게 계산하기 알고리즘 - N개의 수에 대해서 어떠한 처리를 수행한 뒤에 나중에 M개의 쿼리가 각각 주어질 때마다 빠르게 구한 합을 도출할 수 있도록 하면 어떨까? => 접두사 합 이용(Prefix sum) =>O(N+M) - 각 쿼리에 대해 구간합을 빠르게 개선하기 위해서는 n개의 수의 위치 각각에 대하여 접두사 합을 미리 구해 놓으면 된다 = EX) [10,20,30,40,50] => [0,10,30,60,100,150] 3~4 100-30=70 1. N개의 수에 대하여 접두사 합 (Prefix Sum)을 계산하여 배열 P에 저..