[BOJ7453] 합이 0인 네 정수

Updated:

문제

  • 정수로 이루어진 크기가 같은 배열 A, B, C, D가 있다.
  • A[a], B[b], C[c], D[d]의 합이 0인 (a, b, c, d) 쌍의 개수를 구하는 프로그램을 작성

입력

  • n (1<= <= 4000)
  • 다음 n개의 줄에 정수가 공백으로 구분되어 주어짐

출력

  • 합이 0이 되는 쌍의 개수

설계

  • 컬럼 네 개를 두 개로 합치기 -> 컬럼 두 개를 더해서 하나로
  • 두 컬럼을 이용해 합을 0으로 만드는 방법은 쉬움
  • 첫 번째 접근 방법은 map을 이용하여 counting 하는 것인데, 조합이 꽤 많다보니 메모리 초과
  • 두 번째 접근 방법은 binary search를 이용하여 조합한 두 개의 컨테이너에서 합이 0이 될 수 있는 조합 찾기

How I solved(click to github)


ref :
BOJ7453

Leave a comment