17471. 게리멘더링

·2025년 10월 23일

백준 알고리즘

목록 보기
282/325

문제 해결 전략

  • 6개의 영역이 있고, 팀 2개가 있다.

  • a,b팀이라고 하고, 각각 6명이 2개의 팀에 배치를 해야 한다.
    -> 조합을 생각했는데,

  • 굉장히 복잡해 보인다...

  • 다른 방법으로는 비트 마스킹이 있다.

비트마스킹

  • 0과 1로 이루어져 있기 때문에 지금 문제와 쿵짝이 잘 맞는다

  • 비트마스킹으로 팀 구성함.

컴포넌트 확인하기.

  • 팀을 2개로 맞춘 후, 각 팀의 특정번호를 가지고 dfs를 진행하면서 연결된 친구가 과연 우리의 팀이 맞는지를 확인해야 한다.
  • 그리고 우리의 팀이 아니라면 그 친구는 포함하지 않는다.
    문제에서 동일한 팀이지만 연결되지 않는 상황 설명이다.
    -> 이거를 통해서 ScoreSum도 중요하지만, 연결 카운팅도 필요하므로 pair<int,int> 로 반환함.

  • 코드

마지막 확인하는 코드

  • 2개의 팀에 대해서 확인하는 코드

문제에서 반드시 2개의 팀이어야 하므로,

  • 비트마스킹 범위 정할때 1부터 진행해서 가장 큰 크기 - 1만큼만 진행함.
profile
🔥🔥🔥

0개의 댓글