kalmiaa   8달 전

안녕하세요.

당연히 이분매칭으로 풀고 있습니다.

제 코드에 버그가 있는건지, 하루종일 억셉이 뜨질 않네요.


정답 산출방식은

input : X[1..N]

1. X[1] 기준으로 홀짝 숫자들을 나눔. 

2. 합이 소수인 모든 edge를 연결 후 NF로 결과값 산출

3. 1번과 X[i] ( X[1] + X[i] == 소수) 2개 node 와 관련된 모든 edge를 연결하지 않고 이분매칭 시도

4. 위의 결과값이 1번 결과값 -1 일 경우 X[i] 저장

5. 아닐 경우 skip

6. 3번에 해당하는것이 하나도 없을경우 -1 출력


당연히 왠만한 출력값 및 1~50까지의 결과값도 나옵니다.

1~50 결과값

 : 2 4 6 10 12 16 18 22 28 30 36 40 42 46 


디버깅을 하루종일 하고 있습니다;;;


pl0892029   8달 전

접근 방법에는 문제가 없는 것 같습니다.

N = 2 일 때, 홀수 / 짝수개의 숫자가 하나만 존재할 때, 모든 수가 홀수 / 짝수일 때 등의 경계면 검사를 해보시는 것을 추천드립니다.

kalmiaa   8달 전

말씀하신부분들은 모두 해보았습니다.

한번 더 확인해볼게요

감사합니다.

kalmiaa   4달 전

무려 26번만에 억셉받은 제 경험을 토대로 말씀드립니다.


문제 조건에 "모든 수를 짝지었을때" 가 포인트였습니다...


처음에 해보고 모든 수를 짝짓지 못하면, 그냥 결과가 -1 이었네요


댓글을 작성하려면 로그인해야 합니다.