문제풀이

https://www.acmicpc.net/problem/2876 코드import sysinput = sys.stdin.readlinen = int(input())grades = [(0, 0)]for _ in range(n): a, b = map(int, input().split()) grades.append((a, b))dp = [[[0]*2 for _ in range(2)] for _ in range(n+1)] # 왼쪽 학생, 오른쪽 학생ans = [0, 5] # 명수, 그레이드for i in range(1, n+1): for j in range(2): # i번째 책상의 2명의 학생 dp[i][j][1] = grades[i][j] # 그레이드 ..
https://www.acmicpc.net/problem/1469 코드from copy import deepcopyn = int(input())x = sorted(list(map(int, input().split())))answer = []arr = [-1]*(2*n)def bt(idx): if idx == n: new_arr = deepcopy(arr) answer.append(new_arr) return for i in range(2*n-x[idx]-1): if arr[i] == -1 and arr[i+x[idx]+1] == -1: arr[i] = x[idx] arr[i+x[idx]+1] = x[idx..
·문제풀이/MST
https://www.acmicpc.net/problem/16202 코드from heapq import heappushimport sysinput = sys.stdin.readlinen, m, k = map(int, input().split())graph = []for i in range(m): x, y = map(int, input().split()) graph.append((i+1, x, y))def find_parent(x, parent): if x != parent[x]: parent[x] = find_parent(parent[x], parent) return parent[x]def union(a, b, parent): a = find_parent(a, pa..
·문제풀이/DP
https://www.acmicpc.net/problem/14430 코드n, m = map(int, input().split())board = [list(map(int, input().split())) for _ in range(n)]dp = [[0]*(m+1) for _ in range(n+1)]for i in range(1, n+1): for j in range(1, m+1): dp[i][j] = max(dp[i-1][j], dp[i][j-1])+board[i-1][j-1] # 위 or 왼쪽에서print(dp[n][m])  로봇은 아래나 오른쪽으로 한 칸만 이동할 수 있다. 그렇기 때문에 (i, j)칸까지 얻을 수 있는 자원의 최대 숫자는 한 칸 위와 한 칸 왼쪽 중 최대값과 현재..
·문제풀이/DP
21923번: 곡예 비행동헌이는 모형 비행기 조종 대회에 참가하였다. 이 대회에서는 격자 모양의 공간에서 모형 비행기를 조종하여 얻는 비행 점수로 순위를 매긴다. 격자의 각 칸에는 점수가 부여되어 있고, 비행www.acmicpc.net 코드n, m = map(int, input().split())scores = [[0]+list(map(int, input().split())) for _ in range(n)]up = [[-int(1e9)]*(m+1) for _ in range(n+1)] # 상승 비행 점수down = [[-int(1e9)]*(m+1) for _ in range(n+1)] # 하강 비행 점수up[n-1][1] = scores[n-1][1] # 출발점# 상승for j in range..
딜레이레이
'문제풀이' 카테고리의 글 목록 (12 Page)