문제
농부 존은 소 축사를 완성하였다. 축사 환경을 쾌적하게 유지하기 위해서, 존은 축사를 M개의 칸으로 구분하고, 한 칸에는 최대 한 마리의 소만 들어가게 계획했다.
첫 주에는 소를 임의 배정해서 축사를 운영했으나, 곧 문제가 발생하게 되었다. 바로 소가 자신이 희망하는 몇 개의 축사 외에는 들어가기를 거부하는 것이다.
농부 존을 도와 최대한 많은 수의 소가 축사에 들어갈 수 있도록 하는 프로그램을 작성하시오. 축사의 번호는 1부터 M까지 매겨져 있다.
입력
첫째 줄에 소의 수 N과 축사의 수 M이 주어진다. (1 ≤ N, M ≤ 200)
둘째 줄부터 N개의 줄에는 각 소가 들어가기 원하는 축사에 대한 정보가 주어진다. i번째 소가 들어가기 원하는 축사의 수 Si (0 ≤ Si ≤ M)이 먼저 주어지고, 이후 Si개의 축사 번호가 주어진다. 같은 축사 번호가 두 번 이상 주어지는 경우는 없다.
출력
첫째 줄에 축사에 들어갈 수 있는 소의 최댓값을 출력한다.
예제 입력 | 예제 출력 |
5 5 2 2 5 3 2 3 4 2 1 5 3 1 2 5 1 2 |
4 |
풀이
이분매칭 알고리즘의 예제로 나와있어서 풀어보았지만 나에게는 너무 어려웠다...
아직도 코드를 이해중...
정답 비율이 47% 나 되는걸 보면 어려운 문제는 아닌 것 같은데 이분매칭 알고리즘 자체가 나는 어려운가보다 ㅜㅅㅜ
[ JAVA ]
'알고리즘' 카테고리의 다른 글
[ 백준 11376 ] 열혈강호2 (0) | 2021.03.01 |
---|---|
[ 백준 11375 ] 열혈강호 (0) | 2021.03.01 |
[ 백준 1948 ] 임계경로 (0) | 2021.02.27 |
[ 백준 1516 ] 게임 개발 (0) | 2021.02.26 |
[ 백준 2252 ] 줄 세우기 (0) | 2021.02.26 |
댓글