본문 바로가기

백준/클래스9

[9] [Class 5] - 2056 작업 www.acmicpc.net/problem/2056 2056번: 작업 수행해야 할 작업 N개 (3 ≤ N ≤ 10000)가 있다. 각각의 작업마다 걸리는 시간(1 ≤ 시간 ≤ 100)이 정수로 주어진다. 몇몇 작업들 사이에는 선행 관계라는 게 있어서, 어떤 작업을 수행하기 위해 www.acmicpc.net 작업의 우선순위를 두어 처음에는 지나가는 시간을 1씩 올려서 하려고 했는데 그러다보니 큐에 있는 것들이 시간이 다 됐는지를 체크하는게 너무 이상한것 같아서 그만뒀고 먼저 기본 정석이 되는 위상정렬 그래프 구조에서 A를 indegree가 0이 된 작업, B를 A가 끝난 다음에 할 수 있는 작업이라고 생각하면 A가 끝났을 때, B가 걸리는 총 시간 = max(B의 총시간, A가 끝나는 시간 + B가 걸리는.. 2021. 1. 27.
[8] [Class 5] - 백준 1806 부분합 www.acmicpc.net/problem/1806 1806번: 부분합 첫째 줄에 N (10 ≤ N < 100,000)과 S (0 < S ≤ 100,000,000)가 주어진다. 둘째 줄에는 수열이 주어진다. 수열의 각 원소는 공백으로 구분되어져 있으며, 10,000이하의 자연수이다. www.acmicpc.net 팀원 친구들이 레벨 6 풀고 있을때 나는 레벨 5에서 맞왜틀하고있어서 맘이 안좋았다 그치만 역시 꾸준한 노력이 답이기에.. 오늘도 존버.. 연속된 수의 부분합 중에 S 이상이 되는 것 중, 가장 짧은 것의 길이를 구하는 문제 N이 10만이여서 복잡도가 O(NlogN) 이하로 나와야 된다고 생각했고 우선 구간 합을 다 구해놓고, 구간합은 크기에 대해 정렬된 상태이기 때문에 이분 탐색을 이용해서 적절.. 2021. 1. 26.
[7] [Class 3] - 백준 11727 2xn 타일링 2 www.acmicpc.net/problem/11727 11727번: 2×n 타일링 2 2×n 직사각형을 1×2, 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×17 직사각형을 채운 한가지 예이다. www.acmicpc.net 딱 보면 알지만 단순한 동적 프로그래밍 문제입니다. 점화식을 세워서 문제를 해결해야하는데, 점화식 세우는게 어찌 이리 어려운지.. 따로 문제들 풀면서 연습을 해봐야할 것 같습니다. #include using namespace std; long long dp[1001]; int main(){ ios_base :: sync_with_stdio(false); cin.tie(NULL); int N; cin >> N; dp[1] = 1; dp[2] .. 2021. 1. 23.
[6] [Class 3] - 백준 11724 연결 요소의 개수 www.acmicpc.net/problem/11724 11724번: 연결 요소의 개수 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주 www.acmicpc.net 아까 다른 문제를 DFS로 풀어서 이건 그냥 Union find 로 풀어보았다. // https://www.acmicpc.net/problem/11724 // Connected Component // Union find 으로 해도 되고, dfs로 해도 되고.. #include using namespace std; int parent[1001]; in.. 2021. 1. 23.