Koreatech 3학년 광성이는 이번 IT융합 프로그래밍 경시대회를 준비하면서 과거년도 문제를 풀어보기로 정했습니다. 그 중에서 아무도 푼 팀이 없던 0을 만들자 - Large를 풀어보기로 했습니다.
0을 만들자 - Large의 문제를 읽은 광성이는 평소에 풀어봤던 느낌의 문제여서 자신감에 가득찬 표정을 하며 코드를 써 내려갔습니다. 한번에 예제 입출력에 대한 답을 낸 광성이는 제출을 했지만 정답을 맞추진 못했습니다.
하지만 아무리 코드를 들여봐도 어디가 틀린지 모르겠는 광성이는 당신에게 디버깅을 요청했습니다.
어떤 입력에 오답이 나오는지 코드를 보고 광성이에게 알려주세요.
int solve(vector<int>& arr) { sort(arr.begin(), arr.end()); int result = 0; for (int i = 0; i < arr.size(); i++) { int left = i + 1; int right = arr.size() - 1; while (left < right) { int sum = arr[i] + arr[left] + arr[right]; if (sum == 0) result++; if (sum <= 0) left++; if (sum >= 0) right--; } } return result; }
별도의 입력이 주어지지 않습니다.
solve 함수가 오답을 내는 입력을 넣어주세요. 형식은 0을 만들자 - Large 와 동일하게 첫 줄에는 입력될 숫자의 갯수, 두번째 줄에는 입력될 숫자들을 출력 해 주셔야 합니다.