분류 전체보기 8

BOJ 2240: 자두나무 (c++)

#include #include #include using namespace std;int T, W;int arr[1001];int dp[1001][31][2]; // [시간][이동횟수][위치(0:1번, 1:2번)]int go(int time, int move, int pos) { // 기저 조건: 시간이 끝났다면 자두 못 받음 if (time > T) return 0; // 메모이제이션 되어 있다면 반환 int &ret = dp[time][move][pos]; if (ret != -1) return ret; ret = 0; // 현재 위치에서 자두를 받을 수 있는 경우 int get = (arr[time] == pos + 1) ? 1 : 0; // 1. ..

알고리즘 2025.03.30

BOJ 2467: 용액 (C++)

#include #include #include #include using namespace std;int main() { int N; cin >> N; vector arr(N); for (int i = 0; i > arr[i]; } int left = 0, right = N - 1; int closestSum = 2'000'000'000; // 초기화 (문제 조건에서 절대 나올 수 없는 큰 값) int answerLeft = 0, answerRight = 0; while (left 투포인터 문제로, left, right의 두개의 포인터를 사용한다.양 끝으로 투 포인터 각각을 초기화하고, 합 계산 및 최적화 탐색을 수행하면 된다.

알고리즘 2025.01.26

BOJ 1995: 필터 (C++)

문제 요약그렇게 어렵지는 않은 문제로 이미지 I가 주어졌을 때, 3*3 크기의 필터를 사용하여 이미지 전체를 훑고 지나가면서 중앙값을 저장한 더 작은 크기의 이미지를 만들면 된다.  이미지 결과를 출력할필요는 없고, 그 개수만 출력하면 되기 때문에 굳이 2차원 배열에 이를 따로 저장할 필요는 없다.  코드 전문#include #include using namespace std;int main(int argc, const char * argv[]) { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int R, C; cin >> R >> C; // 행과 열 입력 int I[41][41]; ..

알고리즘 2025.01.12