알고리즘 설계 및 분석: C++ 구현 과제 (생명 게임, 잠긴 문, 세 물통 퍼즐, 문자열 매칭, 디스크 정렬)
1. 콘웨이의 생명 게임 구현
콘웨이의 생명 게임은 세포 자동자(cellular automaton)의 한 종류로, 생명체의 탄생, 생존, 죽음을 단순한 규칙으로 시뮬레이션합니다. 각 세포는 8개의 이웃을 가질 수 있으며, 다음 규칙에 따라 상태가 변화합니다:
생존 규칙:
이웃 세포가 2개 또는 3개인 살아있는 세포는 다음 세대에도 생존합니다.
사망 규칙:
...
8월 16일 18:06에 게시됨
동적 프로그래밍을 통한 배낭 문제 이해
배낭 문제 종류 및 해결 방법
다양한 배낭 문제 유형과 그에 따른 최적화 전략을 정리합니다.
01 배낭 문제
n개의 물품(각각의 부피와 가치는 v[i], w[i])과 용량이 V인 배낭이 있을 때 최대 가치를 계산합니다.
for(int i=1; i=v[i]; --j)
dp[j] = max(dp[j], dp[j-v[i]] + w[i]);
완전 배낭 문제
모든 물품이 무한히 제공되는 경우의 최적화 알고리즘입니 ...
7월 24일 01:33에 게시됨
2024년 하이베이 프로그래밍 경연 대회
A - 최대 곱셈
두 수 a와 b의 곱이 최대가 되는 조건은 a=1일 때입니다.
#include <iostream>
using namespace std;
typedef long long ll;
#define endl '\n'
ll gcd(ll a, ll b) {
while (b) {
swap(a, b);
b %= a;
}
return a;
}
void solve() {
ll x, y;
cin >> x >> y;
cout n;
vector points(n);
for (au ...
6월 23일 02:23에 게시됨