최소 간선 수를 만족하는 그래프 구성

문제의 핵심은 제약 조건을 만족하면서 간선의 총 개수를 최소화하는 그래프를 구성하는 것이다. 단순히 직관적으로 접근하면 함정에 빠지기 쉬우므로, 수학적 분석을 통해 최적해를 도출해야 한다. 문제 분석 다음 조건을 만족하는 그래프를 구성해야 한다: 모든 정점의 차수는 k 이상 차수가 정확히 k인 정점들 사이에는 간선이 존재하지 않음 두 정점 사이에는 최대 ...

8월 11일 22:58에 게시됨

Codeforces Round 920 (Div. 3) 효율적인 문제 해결 접근법

Problem A: Square 이 문제는 2차원 평면 위에 놓인 정사각형의 네 꼭짓점 좌표가 주어졌을 때, 해당 정사각형의 넓이를 구하는 문제입니다. 정사각형의 변은 항상 x축 또는 y축에 평행하다는 조건이 있습니다. 네 점의 좌표 중에서 x좌표가 같은 두 점을 찾으면, 그 두 점의 y좌표 차이의 절댓값이 바로 한 변의 길이(a)가 됩니다. 따라서 넓이는 a의 제곱으로 계산할 수 ...

7월 27일 18:21에 게시됨

그리디 알고리즘과 수학적 사고를 활용한 문제 해결

절댓값 부등식을 이용한 최소 거리 선택 절댓값의 성질에 따르면 |x-a| + |x+b| ≥ |a-b| 이며 등호가 성립하려면 x는 a와 b 사이에 위치해야 합니다. 따라서 각 점에서 특정 x까지의 거리 합을 최소화하려면 x는 중앙값에 위치해야 합니다. 주어진 숫자 집합으로 만들 수 없는 최소 양수 찾기 [1,x] 범위의 모든 수를 만들 수 있을 때, 사용하지 않은 가장 작은 수가 a라 ...

6월 30일 04:08에 게시됨

그리디 알고리즘 문제 풀이:柠檬水找零,身高重建队列,气球射箭

柠檬水找零 문제 입력과 응답 시나리오가 고정된 문제의 경우, 단순하게 구현하면 된다. class Solution { public: bool lemonadeChange(vector<int>& bills) { unordered_map cash; for(int i = 0;i < bills.size();i++){ int change = bills[i] - 5; if(change == 0){ cash[bills[i]]++; ...

5월 26일 00:32에 게시됨