알고리즘/programmers

[Programmers] 홀짝트리

꾸준함. 2025. 2. 14. 20:07

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/388354

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

Union Find 알고리즘 문제였습니다.

 

알고리즘은 다음과 같습니다.

1. 각 노드에 연결된 간선의 개수인 degree를 기록하고 간선 정보를 이용해 각 노드들이 어떤 트리에 속하는지 파악합니다.

 

2. 각 노드가 홀짝 트리 또는 역홀짝 트리의 루트로 선택될 수 있는지 확인 후, 두 그룹으로 분류합니다.

  • (node % 2) == (degree % 2) → 루트로 쓰일 수 있음
  • (node % 2) != (degree % 2) → 루트로 쓰일 수 없음

 

3. 홀짝 트리와 역홀짝 트리의 개수를 구합니다.

  • 홀짝 트리: 트리 내에 루트로 선택 가능한 노드가 오직 하나
  • 역홀짝 트리: 트리 내에 비루트 그룹이 오직 하나

 

 

개발환경: Programmers IDE   

 

지적, 조언, 질문 환영합니다! 질문 남겨주세요~

반응형

'알고리즘 > programmers' 카테고리의 다른 글

[Programmers] 완전범죄  (0) 2025.02.17
[Programmers] 서버 증설 횟수  (1) 2025.02.15
[Programmers] 지게차와 크레인  (0) 2025.02.13
[Programmers] 비밀 코드 해독  (0) 2025.02.11
[Programmers] 안티세포  (0) 2025.02.10