[백준] 4008 특공대 Python 3
·
코딩/백준-알고리즘
데크 - 누적 합, 동적 프로그래밍(DP) 및 데크를 결합하여 큰 데이터 세트를 효율적으로 처리하는 데 유용합니다.문제 개요N명의 병사가 주어졌을 때, 각 병사는 특정 전투력 값을 가지고 있습니다. 우리는 A, B, C라는 세 개의 계수를 사용하여 일련의 계산을 통해 전투력을 최대화하고자 합니다. 이 솔루션의 핵심은 데크를 사용하여 선형 함수를 효율적으로 관리함으로써 DP 전환을 최적화하는 것입니다.함수 T 설명함수 T(i, j, A, B)는 주어진 계수 A와 B 아래에서 점 i와 j로 정의된 두 직선의 교점을 계산합니다. 이 함수는 선이 더 이상 유효하지 않고 데크에서 제거될 수 있는지를 결정하는 데 중요한 역할을 합니다. 전체 코드다음은 전체 코드입니다:import sysfrom collections..
[백준] 1031 스타대결 Python 3
·
코딩/백준-알고리즘
파이썬을 사용하여 BFS(너비 우선 탐색) 알고리즘을 통해 최대 유량 문제를 해결하는 방법을 설명하겠습니다. 이 문제는 그래프 이론의 한 분야로, 네트워크 플로우 문제를 해결하는 데 사용됩니다. 주어진 문제를 해결하기 위해 작성한 Python 코드를 소개하고, 각 부분이 어떻게 동작하는지 자세히 설명하겠습니다.문제 설명주어진 문제는 다음과 같습니다:두 개의 행렬 𝑁N과 𝑀M이 주어집니다.각 행렬의 요소는 0 또는 1의 값을 가집니다.목표는 𝑁×𝑀N×M의 0과 1로 이루어진 최종 행렬을 만들어 각 행과 열의 합이 주어진 값과 동일하게 만드는 것입니다.이를 해결하기 위해서 네트워크 플로우 문제로 변환하고, BFS를 활용하여 최대 유량을 계산합니다.코드 설명다음은 문제를 해결하기 위해 작성한 Pytho..
[백준] 5979 남땜하기 C++ (Feat 고찰)
·
코딩/백준-알고리즘
Li Chao Segment Tree를 사용하여 최소 비용 트리 문제를 해결하는 방법에 대해 설명합니다. 이 알고리즘은 주어진 트리 구조에서 비용을 최소화하는 경로를 찾는 데 사용됩니다. 해당 알고리즘을 C++로 구현합니다문제 설명주어진 트리에서 각 노드를 방문하는 비용이 정의되어 있을 때, 특정 노드에서 시작하여 모든 노드를 방문하는 최소 비용을 계산하는 문제입니다. 이 문제를 해결하기 위해 우리는 Li Chao Segment Tree라는 자료 구조를 사용합니다.Li Chao Segment Tree란?Li Chao Segment Tree는 선형 함수들의 최소값을 구하는 데 최적화된 자료 구조입니다. 이 자료 구조는 Convex Hull Trick과 비슷하지만, 세그먼트 트리의 형태로 구현되어 특정 범위..
[백준] 1257 엄청난 부자 Python 3
·
코딩/백준-알고리즘
문제 설명먼저 문제를 이해해봅시다. 입력으로는 다음과 같은 값들이 주어집니다:목표 값 𝑚m리스트의 길이 𝑛n𝑛n개의 정수로 이루어진 리스트 𝑎a우리는 리스트 𝑎a의 요소들을 사용하여 목표 값 𝑚m에 도달하는 가장 빠른 방법을 찾아야 합니다.코드 설명다음은 문제를 해결하기 위해 작성한 Python 코드입니다.import heapqdef main(): # 입력 받기 m = int(input()) n = int(input()) a = list(map(int, input().split())) # 최대 요소 값 구하기 s = max(a) # dp 배열 초기화 dp = [float('inf')] * s dp[0] = 0 # 우선순위 큐 초기화 p..