티스토리 뷰
728x90
문제 링크: https://www.acmicpc.net/problem/2056
2056번: 작업
수행해야 할 작업 N개 (3 ≤ N ≤ 10000)가 있다. 각각의 작업마다 걸리는 시간(1 ≤ 시간 ≤ 100)이 정수로 주어진다. 몇몇 작업들 사이에는 선행 관계라는 게 있어서, 어떤 작업을 수행하기 위해
www.acmicpc.net
문제 풀이
위상 정렬에 다이나믹 프로그래밍을 이용하는 문제이다. 사실상 웰노운 문제인 1005번의 아이디어를 가져왔다.
상관 관계가 있는 작업의 시간을 가져와 max()로 최댓값을 갱신해줘야 한다. 어떤 작업을 수행하기 위해 반드시 먼저 완료되어야 하기 때문이다. dp 테이블을 만들어서 가장 시간이 오래 걸린 것을 출력하면 된다. 이 역시도 max()를 이용하면 된다. 물론 위상 정렬없이 가능한 문제이지만 아이디어가 쉬워서 가져왔다.
코드
728x90
'BOJ' 카테고리의 다른 글
[BOJ][Python] 백준 24268번 - 2022는 무엇이 특별할까? (0) | 2022.01.16 |
---|---|
[BOJ][Python] 백준 23253번 - 자료구조는 정말 최고야 (0) | 2021.12.08 |
[BOJ][Python] 백준 15728번 - 에리 - 카드 (0) | 2021.09.29 |
[BOJ][Python] 백준 22993번 - 서든어택 3 (0) | 2021.09.21 |
[BOJ][Python] 백준 20365번 - 블로그2 (0) | 2021.09.20 |
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- DP
- 정렬
- 백트래킹
- set
- 위상 정렬
- 파이썬
- math
- 시뮬레이션
- MST
- 다이나믹 프로그래밍
- 브루트포스
- convex hull
- greedy
- 볼록 껍질
- 너비 우선 탐색
- TEXT
- 수학
- 최소 신장 트리
- Sorting
- Python
- BFS
- 집합과 맵
- Simulation
- Implementation
- 구현
- Brute Force
- backtracking
- BOJ
- 그리디
- Topological Sorting
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함