1007번 - 벡터 매칭
풀이 방법:
1. 20개의 점을 일단 모두 더해 sum_x, sum_y에 저장
2. 20개의 점 중 10개의 점을 DFS를 이용해 뽑아 sum_x에서 두 번 뺄고, 그 결과를 result에 저장
(여기서 result에 오버플로우가 나는 것을 방지하기 위해 long long 형 사용)
3. result 중 최솟값을 뽑아 최종적으로 sqrt(result)를 출력
검사해본 예시
1. 문제에 나온 예시
2. 0 0 / 1 1 / 2 2 / 3 3 : 0 나오는 것 확인
3. 100000 100000 (10개) / -100000 -100000 (9개) / -99999 -99999 : sqrt(2) 나오는 것 확인
(3번은 '같은 점은 없다'라는 문제의 조건과는 맞지 않지만 점의 갯수가 많을 때 무슨 일이 일어나는지 확인해보기 위한 예시)
무엇이 문제일까요...?
25번째 줄: ++count로 for문 돌 때마다 count가 올라가는 것 같습니다.
49번째 줄: i<=n/2로 해야 할 것 같습니다. 시작 위치가 n/2가 가능한 것으로 보입니다.
대충 훑어본 거라 틀릴 수도 있지만 가장 가능성이 높은 두 가지 입니다.
말씀하신 두 부분 수정했더니 맞았습니다!
정말 감사합니다!!
댓글을 작성하려면 로그인해야 합니다.
kookies371 3년 전
풀이 방법:
1. 20개의 점을 일단 모두 더해 sum_x, sum_y에 저장
2. 20개의 점 중 10개의 점을 DFS를 이용해 뽑아 sum_x에서 두 번 뺄고, 그 결과를 result에 저장
(여기서 result에 오버플로우가 나는 것을 방지하기 위해 long long 형 사용)
3. result 중 최솟값을 뽑아 최종적으로 sqrt(result)를 출력
검사해본 예시
1. 문제에 나온 예시
2. 0 0 / 1 1 / 2 2 / 3 3 : 0 나오는 것 확인
3. 100000 100000 (10개) / -100000 -100000 (9개) / -99999 -99999 : sqrt(2) 나오는 것 확인
(3번은 '같은 점은 없다'라는 문제의 조건과는 맞지 않지만 점의 갯수가 많을 때 무슨 일이 일어나는지 확인해보기 위한 예시)
무엇이 문제일까요...?