Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- jpa
- CI/CD
- 시뮬레이션
- JavaScript
- 이분탐색
- REACT
- 펜윅 트리
- r
- 백준 1753번
- Air Table
- Bit
- 데이터 분석
- Cloud Pub/Sub
- 종만북
- 다이나믹 프로그래밍
- BFS
- 컴퓨터 구조
- LCS
- 삼성 SW 역량테스트
- 그리디
- 생활코딩
- Cloud Run
- 고속 푸리에 변환
- 접미사 배열
- dp
- 우선순위 큐
- 다익스트라
- ICPC
- 수학
- 삼성SW역량테스트
Archives
- Today
- Total
코딩스토리
백준 2056번 - 작업 본문
기초적인 DP 문제였다.
인접리스트를 사용하는게 해결 방법이였다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
#include <iostream>
#include <vector>
#include <cstring>
#include <algorithm>
using namespace std;
typedef long long ll;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int t, n, x;
int time[10004];
vector<int>must[10004];
int dp[10004];
cin >> t;
for (int i = 0; i < t; i++) {
cin >> time[i] >> n;
for (int j = 0; j < n; j++) {
cin >> x;
must[i].push_back(x);
}
}
int ans = 0;
for (int i = 0; i < t; i++) {
int s = must[i].size();
int max_num = 0;
for (int k = 0; k < s; k++) {
max_num = max(max_num, dp[must[i][k] - 1]);
}
dp[i] = max_num + time[i];
ans = max(ans, dp[i]);
}
cout << ans << "\n";
}
|
cs |
골드 4 치고는 어렵지 않은 문제였다. 한 실버 1정도 난이도 인듯..
'알고리즘 > BOJ 문제 풀이' 카테고리의 다른 글
백준 11048번 - 이동하기 (0) | 2021.01.06 |
---|---|
백준 1005번 - ACM Craft (0) | 2021.01.01 |
Educational Codeforces Round 98 (Rated for Div. 2) - C번 (0) | 2020.12.27 |
백준 2621번 - 카드게임 (0) | 2020.12.27 |
백준 1197번 - 최소 스패닝 트리 (1) | 2020.12.17 |
Comments