티스토리 뷰
짝수 개의 수 리스트가 주어질 때, 2개씩 짝지었을 때의 합이 모두 소수가 되는 경우의
첫 번째 수와 연결 되어 있는 수를 오름차순으로 출력하는 문제이다.
입력에 주어지는 수들은 중복되지 않으므로 1이 두 번 주어질 수는 없다.
소수는 2보다 클 경우 모두 홀수이므로 합이 홀수가 될 때의 경우를 생각해보자.
홀수는 짝수와 홀수가 더해질 때만이 홀수가 되므로 2개의 그룹으로 나눠지고
이들을 짝지어 이어주는, 즉 이분매칭 문제가 되게 된다.
짝수 그룹, 홀수 그룹으로 나누고 이들을 잇는 간선들은 합이 소수가 될 경우 이어준다.
이 그래프의 최대 매칭이 N/2일 경우에 답으로 가능할 경우인 것을 알 수 있다.
약간의 함정이 숨어있는 문제다. 출력해야할 부분은 첫 번째 수와 연결되어 있는 수로,
첫 번째수가 홀수일 지, 짝수일 지 알 수 없으며 이 또한 잘 구별해서 판단해줘야 한다.
첫 번째 수와 연결된 수가 궁금한 것이므로 처음에 그래프에서 간선을
첫번 째 수를 제외하고 연결 한 뒤
모든 반대 그룹의 정점들과 조건이 만족할 경우(합이 소수일 경우) 간선을 이어주고
최대 매칭을 구하고 다시 간선을 삭제해 주는 과정을 반복하여 답을 계산하면 풀 수 있는 문제이다.
'문제 해결 > 백준 온라인 저지' 카테고리의 다른 글
15678번: 연세워터파크 (1) | 2019.01.03 |
---|---|
1787번: 문자열의 주기 예측 (0) | 2018.09.26 |
14961번: Untangling Chain (0) | 2018.09.09 |
14959번: Slot Machines (0) | 2018.09.09 |
14955번: How Many to Be Happy? (0) | 2018.09.09 |
댓글