댈팽이 2024. 4. 12. 15:34
728x90

1. 위상 정렬

  • 위상 정렬(topology sort)는 사이클이 없는 방향 그래프에서 노드 순서를 찾는 알고리즘이다.
  • 시간 복잡도는 O(노드 수 + 에지 수)이다.
  • 항상 같은 값으로 정렬되지 않는다. (결과가 다를 수 있음)

2. 위상 정렬 과정

  1. 자기 자신을 가리키는 에지의 개수를 나타낸 진입 차수 배열을 생성
  2. 진입 차수가 0인 노드를 선택하고 정렬 배열에 저장
  3. 인접 리스트에서 선택된 노드가 가리키는 노드들의 진입 차수를 1씩 감소
  4. 모든 노드가 정렬 배열에 저장될 때까지 과정 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