티스토리 뷰

Problem Solving

BOJ 2252: 줄 세우기

onaeonae1 2020. 10. 17. 11:59

www.acmicpc.net/problem/2252

 

2252번: 줄 세우기

첫째 줄에 N(1≤N≤32,000), M(1≤M≤100,000)이 주어진다. M은 키를 비교한 회수이다. 다음 M개의 줄에는 키를 비교한 두 학생의 번호 A, B가 주어진다. 이는 학생 A가 학생 B의 앞에 서야 한다는 의미이��

www.acmicpc.net

문제 설명

 

두 사람의 키를 비교한 관계들이 쭉 주어질 때 (가능한) 키 순서를 출력하면 되는 문제

 

문제 풀이

 

-그래프에서 정해진 노드끼리의 간선등 정해진 순서가 있을 때, 이를 위반하지 않으면서 그래프 전체의 노드를 방문하는 경우를 가져오는게 위상정렬 문제의 특징이다.

-위의 문제는 기본적인 위상정렬 문제라서 크게 변형할 것이 없었다. 바로 연결 관계 받고, 위상 정렬 구현해주면 된다.

 

소스 코드

github.com/onaeonae1/ProblemSovling/blob/master/BOJ%202252.cpp

 

onaeonae1/ProblemSovling

Problem Solving(BOJ/AOJ/Programmers) with C++. Contribute to onaeonae1/ProblemSovling development by creating an account on GitHub.

github.com

* 위상 정렬 문제는 정말 여러번 구현하는 것 같은데, indegree를 배열로 짜고, edge를 vector로 짜주는 게 습관처럼 굳었다. 다른 방법도 있나 알아보자

'Problem Solving' 카테고리의 다른 글

[PS]2021 KAKAO BLIND RECRUITMENT 2021 : 메뉴 리뉴얼  (0) 2021.02.02
BOJ 11723: 집합  (0) 2020.10.24
BOJ 12865: 평범한 배낭  (0) 2020.10.16
BOJ 17827 : 달팽이 리스트  (0) 2020.08.27
BOJ 3665 : 최종 순위  (0) 2020.08.26
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
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
글 보관함