algoqna

[BOJ 1953] 팀 배분 본문

프로그래밍/기타 문제풀이

[BOJ 1953] 팀 배분

kkalgo 2023. 6. 20. 19:21
 

1953번: 팀배분

첫줄에는 청팀의 사람의 수를 출력하고, 그리고 둘째 줄에는 청팀에 속한 사람들을 오름차순으로 나열한다. 그리고 셋째 줄과 넷째 줄은 위와 같은 방법으로 백팀에 속한 인원의 수, 백팀에 속

www.acmicpc.net

  • 각 학생은 싫어하는 학생들이 있다.
  • 싫어하는 학생들끼리 팀을 배치하지 않도록 팀을 구성하고, 구성된 두 팀의 결과값을 출력

bfs를 이용한 풀이

  • 싫어하는 학생들의 관계를 인접리스트 형식으로 넣어둔다.
  • 아직 그룹이 속하지 않은 학생에 대해서 청팀으로 우선 배치한다.
    • 청팀으로 우선 배치했으므로 선택한 학생이 싫어하는 학생들은 모두 흰팀 배치 후 큐 삽입
      • 청팀 배치는 1, 흰팀 배치는 2, 아무 팀에도 배치되지 않은 상태는 0
    • 흰팀으로 배치된 학생들은 싫어하는 학생들을 모두 청팀 배치
  • 이 과정이 끝나면 다시 그룹이 속하지 않은 학생들을 청팀에 배치해본다.
 

GitHub - ssjjaa-algo/AlgoAndMySQL

Contribute to ssjjaa-algo/AlgoAndMySQL development by creating an account on GitHub.

github.com

 

'프로그래밍 > 기타 문제풀이' 카테고리의 다른 글

[BOJ 2615] 오목  (0) 2023.06.23
[BOJ 17141] 연구소 2  (0) 2023.06.21
[BOJ 1174] 줄어드는 수  (2) 2023.06.13
[BOJ 14567] 선수 과목  (0) 2023.06.03
[BOJ 21923] 곡예 비행  (0) 2023.06.02