책/Do it! 알고리즘 코딩 테스트 자바 편
Day-16 위상 정렬
댈팽이
2024. 4. 12. 15:34
728x90
1. 위상 정렬
- 위상 정렬(topology sort)는 사이클이 없는 방향 그래프에서 노드 순서를 찾는 알고리즘이다.
- 시간 복잡도는 O(노드 수 + 에지 수)이다.
- 항상 같은 값으로 정렬되지 않는다. (결과가 다를 수 있음)
2. 위상 정렬 과정
- 자기 자신을 가리키는 에지의 개수를 나타낸 진입 차수 배열을 생성
- 진입 차수가 0인 노드를 선택하고 정렬 배열에 저장
- 인접 리스트에서 선택된 노드가 가리키는 노드들의 진입 차수를 1씩 감소
- 모든 노드가 정렬 배열에 저장될 때까지 과정 2, 3을 반복
3. 예제 문제
[2252] 줄 세우기 (JAVA)
# 문제 설명 N명의 학생들을 키 순서대로 줄을 세우려고 한다. 각 학생의 키를 직접 재서 정렬하면 간단하겠지만, 마땅한 방법이 없어서 두 학생의 키를 비교하는 방법을 사용하기로 하였다. 그
spicyrisotto.tistory.com
[1516] 게임 개발 (JAVA)
# 문제 설명 숌 회사에서 이번에 새로운 전략 시뮬레이션 게임 세준 크래프트를 개발하기로 하였다. 핵심적인 부분은 개발이 끝난 상태고, 종족별 균형과 전체 게임 시간 등을 조절하는 부분만
spicyrisotto.tistory.com
[1766] 문제집 (JAVA)
# 문제 설명 민오는 1번부터 N번까지 총 N개의 문제로 되어 있는 문제집을 풀려고 한다. 문제는 난이도 순서로 출제되어 있다. 즉 1번 문제가 가장 쉬운 문제이고 N번 문제가 가장 어려운 문제가
spicyrisotto.tistory.com
728x90