https://www.acmicpc.net/problem/1766
1766번: 문제집
첫째 줄에 문제의 수 N(1 ≤ N ≤ 32,000)과 먼저 푸는 것이 좋은 문제에 대한 정보의 개수 M(1 ≤ M ≤ 100,000)이 주어진다. 둘째 줄부터 M개의 줄에 걸쳐 두 정수의 순서쌍 A,B가 빈칸을 사이에 두고 주
www.acmicpc.net
문제 이해
문제의 난이도가 존재하며 정렬되어 나타납니다. 해당 문제사이에는 먼저 풀면 좋은 문제들이 있고 이들의 관계가 주어집니다. 난이도가 쉬운것 부터 푸는 것이 좋으며 가장 효율적으로 문제를 푸는 순서를 구하는 문제였습니다.
입출력 조건
시간초 제한은 2초, 문제의 최대 갯수는 32,000개 문제사이의 관계의 갯수는 최대 100,000개 였습니다.
풀이
먼저 풀어서 좋은 것이 있다는 것은 결국 순서가 정해진다는 것이고 이는 결국 위상정렬을 뜻함을 쉽게 알 수 있었습니다.
또 문제들이 쉬운 순서대로 풀어야 한다는 점에서 pq를 써서 문제 번호가 작은 것 부터 나오게 한다면 해결할 수 있는 쉬운 문제였습니다.
에러 및 느낀 점
위상정렬 짱
전체 코드
https://github.com/JuneYoungDo/Algorithm/blob/master/1766_%EB%AC%B8%EC%A0%9C%EC%A7%91.cpp
GitHub - JuneYoungDo/Algorithm: This is a repository for additional problem solving in Baekjun.
This is a repository for additional problem solving in Baekjun. - GitHub - JuneYoungDo/Algorithm: This is a repository for additional problem solving in Baekjun.
github.com
'Algorithm > BOJ' 카테고리의 다른 글
[BOJ C++] 17143 낚시왕 (0) | 2022.07.25 |
---|---|
[BOJ C++] 11909 배열 탈출 (0) | 2022.07.24 |
[BOJ C++] 1238 파티 (0) | 2022.07.23 |
[BOJ C++] 15591 MooTube (Silver) (0) | 2022.07.22 |
[BOJ C++] 1445 일요일 아침의 데이트 (0) | 2022.07.22 |