728x90
🔗 문제링크 🔗
🌟 생각 흐름 🌟
우선 문제를 풀기 위해서 싫어하는 사람들과의 표기를 그래프를 통해서 진행했다
그래프를 그린 후 한 노드에서 시작한 경우 현재 노드와 다음노드만 다른 팀이면 가능하다고 생각했다
그리고 그 다음노드에서의 다음노드가 서로 다른 팀이면 가능하다는 식으로 dfs로 구현하였다
그래서 한 노드에서 시작한후 현재 깊이가 짝수이면 청팀, 홀수 이면 백팀에 넣도록 코드를 구현하였다
예를 들어 1,2가 서로를 싫어하고 2,3이 서로를 싫어하는 경우
↔️ : 서로 싫어하는 경우 포기
1️⃣ ↔️ 2️⃣ ↔️ 3️⃣ 와 같이 표기할 수 있고
1에서 시작한 경우 아래와 같다.
1️⃣ : 청팀(깊이 0)
2️⃣ : 백팀(깊이 1)
3️⃣ : 청팀(깊이 2)
🍳 코드 🍳
728x90
'알고리즘' 카테고리의 다른 글
[백준 Java]15711_환상의 짝궁_수학, 소수 (0) | 2023.02.25 |
---|---|
[백준 Java]1459_걷기_그리디 (0) | 2023.02.23 |
위상정렬 Topology Sort, 백준 1766 문제집(Java) (0) | 2023.02.22 |
[백준 Java] 1238 파티 (다익스트라, 데이크스트라) (0) | 2023.02.21 |
[백준 Java] 11054 가장 긴 바이토닉 부분수열 (0) | 2023.02.21 |
댓글