[백준] 14585번 사수빈탕 (C++)

2025. 10. 20. 18:41·Algorithm
728x90

https://www.acmicpc.net/problem/14585

 

 

이 문제는 최대 300 X 300의 좌표평면이 주어졌을때 N개의 좌표에 대해 사탕이 존재하며 이 사탕을 최대로 먹을 수 있는 개수를 출력하는 문제이다.

 

현재 좌표에서 증가하는 좌표 방향 (x+1, y), (x, y+1) 방향으로만 갈 수 있으며 한칸을 이동할때마다 1초가 걸리며 사탕의 개수도 1씩 없어진다.

 

좌표를 전체 탐색하는 경우 O(500^2)이므로 충분히 가능하기 때문에 탑다운 방식을 사용하여 시작 좌표에서 좌표 끝까지 탐색하며

사탕을 만났을때 최댓값을 갱신하여 값을 출력하도록 하였다.

 

 

정답코드

#include <bits/stdc++.h>
using namespace std;
typedef pair<int, int> pii;
typedef long long ll;
#define endl "\n"
#define MAX 1e9

struct coordinate {
    int x;
    int y;
    int r;
};

int dx[] = {-1, 1, 0, 0, 1, -1, -1, 1};
int dy[] = {0, 0, -1, 1, -1, 1, -1, 1};
int N, M;
bool arr[301][301];
int dp[301][301];

int solve(int x, int y) {
    if(x >= 301 || y >= 301) return 0;

    int &ret = dp[x][y];
    if(ret != -1) return ret;
    int cnt = (arr[x][y])? max(0, M - x - y) : 0;
    ret = max(solve(x+1, y), solve(x, y+1)) + cnt;
    return ret;
}

void input() {
    cin >> N >> M;

    memset(dp, -1, sizeof(dp));

    for(int i = 0; i < N; i++) {
        int a, b;
        cin >> a >> b;
        arr[a][b] = true;
    }

    cout << solve(0, 0);
}

int main() {
    ios::sync_with_stdio(0);
    cin.tie(0), cout.tie(0);

    input();
}

 

728x90
저작자표시 (새창열림)

'Algorithm' 카테고리의 다른 글

[백준] 6209번 제자리 멀리뛰기 (C++)  (0) 2025.10.22
[백준] 21278번 호석이 두 마리 치킨 (C++)  (0) 2025.10.21
[백준] 2887번 행성 터널 (C++)  (0) 2025.10.08
[백준] 12015번 가장 긴 증가하는 부분수열 2 (C++)  (0) 2025.10.07
[백준] 1684번 같은 나머지 (C++)  (0) 2025.10.06
'Algorithm' 카테고리의 다른 글
  • [백준] 6209번 제자리 멀리뛰기 (C++)
  • [백준] 21278번 호석이 두 마리 치킨 (C++)
  • [백준] 2887번 행성 터널 (C++)
  • [백준] 12015번 가장 긴 증가하는 부분수열 2 (C++)
쿨쿨.
쿨쿨.
  • 쿨쿨.
    All of the life
    쿨쿨.
  • 전체
    오늘
    어제
    • 분류 전체보기 (279)
      • Programming (47)
        • C, C++ (18)
        • Python (6)
        • Java (1)
        • HTML,CSS,JS (3)
        • SQL(DB) (13)
        • SpringBoot (3)
        • Android (2)
        • CI,CD (1)
      • Algorithm (173)
        • Review (4)
      • Security (14)
        • WebHacking (3)
        • Websecurity (11)
      • OS (19)
        • Linux (12)
        • Mac os (2)
      • 머신러닝 (1)
      • CS(Computer Science) (12)
        • 컴퓨터 네트워크 (3)
        • 컴퓨터 구조 (1)
        • 인공지능 (8)
      • Docker (1)
      • Dev Book Review (3)
        • Clean Code (1)
        • Effective Java (0)
        • Real MySQL (2)
      • SWM (1)
      • Review (6)
      • AWS (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    우선순위큐
    백준
    그리디
    DP
    누적합
    Bandit
    linux
    투포인터
    c언어
    다이나믹 프로그래밍
    WebSecurity
    비트마스킹
    브루트포스
    wargame
    트리
    에라토스테네스의 체
    우선순위 큐
    코딩
    그래프 이론
    다익스트라
    BFS
    백트래킹
    정렬
    Leviathan
    시뮬레이션
    재귀
    DFS
    깊이우선탐색
    이분탐색
    구현
  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.6
쿨쿨.
[백준] 14585번 사수빈탕 (C++)
상단으로

티스토리툴바