백준 15486 퇴사 2(c++)

2023. 1. 26. 17:10·PS/동적 계획 알고리즘[DP]

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

 

15486번: 퇴사 2

첫째 줄에 N (1 ≤ N ≤ 1,500,000)이 주어진다. 둘째 줄부터 N개의 줄에 Ti와 Pi가 공백으로 구분되어서 주어지며, 1일부터 N일까지 순서대로 주어진다. (1 ≤ Ti ≤ 50, 1 ≤ Pi ≤ 1,000)

www.acmicpc.net

이 문제는 예전에 풀기도 했었고, 보자마자 DP가 떠올랐습니다. 상담으로 얻을 수 있는 최대 수익을 출력해야 하는데, 이전에 벌어들인 수익을 누적시켜야 하기 때문에 DP를 이용했습니다. 

기본 로직은 상담을 하는 것과 하지 않는 것으로 나누고,

상담을 했을 때는 max(상담을 했을 때의 누적값, 그날 상담으로 얻을 수 있는 비용)이고,

상담을 하지 않은 경우에는 max(그 날 상담으로 얻을 수 있는 비용, 다음 날 상담으로 얻을 수 있는 비용)입니다.

 

<코드>

#include <iostream>
#include <vector>
using namespace std;

int main()
{
    int d[1500001];
    int t[1500001];
    int p[1500001];
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);
    int n;
    cin >> n;
    for (int i = 0; i < n; i++)
    {
        cin >> t[i] >> p[i];
    }
    for (int i = 0; i < n; i++)
    {
        d[i + t[i]] = max(d[i + t[i]], d[i] + p[i]);
        // 상담 O
        d[i + 1] = max(d[i + 1], d[i]);
        // 상담 X
    }
    cout << d[n] << '\n
저작자표시 비영리 변경금지 (새창열림)

'PS > 동적 계획 알고리즘[DP]' 카테고리의 다른 글

백준 11066 파일 합치기(c++)  (0) 2023.01.27
백준 10942 팰린드롬?(c++)  (0) 2023.01.27
백준 11048 이동하기(c++)  (0) 2023.01.26
백준 11660 구간 합 구하기 5(c++)  (0) 2023.01.19
백준 2775 부녀회장이 될테야(c++)  (0) 2023.01.19
'PS/동적 계획 알고리즘[DP]' 카테고리의 다른 글
  • 백준 11066 파일 합치기(c++)
  • 백준 10942 팰린드롬?(c++)
  • 백준 11048 이동하기(c++)
  • 백준 11660 구간 합 구하기 5(c++)
SeungbeomKim
SeungbeomKim
[IT(PS, CS, SW, etc.) 지식 기록] Github : https://github.com/daily1313/
  • SeungbeomKim
    개발 블로그
    SeungbeomKim
  • 전체
    오늘
    어제
    • 분류 전체보기 (383)
      • 일상 (33)
        • 여행 (17)
        • 회고록 (9)
        • 리뷰 (7)
      • PS (138)
        • 그리디 알고리즘[Greedy] (25)
        • 정렬 알고리즘[Sort] (18)
        • 문자열 알고리즘[String] (14)
        • 동적 계획 알고리즘[DP] (17)
        • 깊이 우선 탐색, 너비 우선 탐색[DFS, BFS.. (34)
        • 재귀[Recursion] (2)
        • 백트래킹[Backtracking] (5)
        • 브루트포스 알고리즘[Bruteforce] (16)
        • 자료 구조[Data Structure] (4)
        • 분할 정복 알고리즘[Divide & Conquer.. (3)
      • CS (22)
      • Network (11)
      • Database (8)
        • Elasticsearch (3)
      • Linux (2)
      • JavaScript (4)
        • AngularJS (1)
      • Java (92)
        • Effective Java (5)
        • Java Concept (20)
        • Spring (61)
        • Design Pattern (3)
      • Python (2)
      • Vscode (1)
      • DevOps (43)
        • AWS (27)
        • Git (7)
        • Docker (6)
        • Nginx (1)
      • 자격증 (10)
        • SQL (4)
      • 사이드 프로젝트 (2)
        • MatJido (2)
      • 기타 (9)
  • 블로그 메뉴

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

    • Github
  • 공지사항

  • 인기 글

  • 태그

    Spring
    정보처리기사 필기
    springboot
    Wi-Fi
    Effective Java
    dp
    너비 우선 탐색
    일본여행
    메타코딩
    dfs
    정보처리기사 실기
    AWS
    정보처리기사
    docker
    이펙티브 자바
    컴퓨터구조
    백트래킹
    BFS
    다이나믹 프로그래밍
    sqld
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
SeungbeomKim
백준 15486 퇴사 2(c++)
상단으로

티스토리툴바