그래프 구성을 소스 left right 종료
로 구성하고 right의 모든 노드가 종료로 1을 보낸 경우 연결을 시켰습니다.
생각해보니 left와 right 즉 홀수 짝수의 갯수가 다른 경우가 있을 때 예를 들면 홀수가 100개 짝수가 2개라면
제가 위에 짠 코드로는 짝수 2개만 짝을 이루어도 답으로 인정되었습니다.
최대 갯수는 n //2 이고 이미 1과 연결된 하나를 뽑았음으로 n//2 -1 과 일치하는지 마지막 노드의 간선의 수랑 이를 비교하여 해결하였습니다.
jsy8481 4년 전
16%정도에서 틀렸다고 나왔습니다. (혹시 참고가 될 까 싶어 적습니닷)
코드의 흐름은
먼저 1번 숫자를 빼서 홀수 짝수를 판단하고
left에는 그 숫자와 반대되는 수를 담았습니다.
그 후 1번과 소수가 될 수 있는 값을 뽑았습니다.
이후 그래프를 그리기 위해 left right 두 리스트의 값을 비교하여 left에서 right 를 더해 소수가 된다면 이를
edge에 추가해두었고
dfs 최대 유량 알고리즘을 이용하였습니다.
그래프는 딕셔너리를 이중으로 사용하여 {시작점 : { 도착점 : weight}} 구조로 만들었습니다.
0 이 되는 엣지를 중간에 제거하는 방법으로 계산 횟수를 줄였습니다. -> 제거해도 코드가 진행을 되더라구요..
어떤 부분이 오류가 될지 몰라 이것 저것 두서 없이 쓴 점 죄송합니다.
읽어주셔서 감사합니다. 도움을 부탁드려요!!