한 오픈마켓은 서로 다른 상품 두 개를 하나의 박스에 담아 보내는 합배송 요금제를 운영합니다.
이 요금제는 두 상품의 무게 합이 lo 이상 hi 이하인 경우에만 적용됩니다.
합이 lo 미만이면 최소 요금 구간에 못 미쳐 개별 배송이 더 싸고,
hi를 넘으면 박스 하중을 초과합니다.
상품들의 무게가 담긴 정수 배열 weights와 두 정수 lo, hi가 주어질 때,
합배송이 가능한 상품 쌍의 개수 를 반환하는 solution(weights, lo, hi) 함수를 완성하세요.
(i, j)에서 i < j인 조합을 셉니다.| weights | lo | hi | 반환 | 설명 |
|---|---|---|---|---|
[1, 2, 3, 4, 5] |
5 | 7 | 6 | 합이 5~7인 쌍: (1,4) (1,5) (2,3) (2,4) (2,5) (3,4) |
[2, 2, 2, 2] |
4 | 4 | 6 | 어느 두 개를 골라도 합이 4 → 4개 중 2개를 뽑는 6가지 |
[1, 9, 5, 3, 7] |
10 | 10 | 2 | 합이 정확히 10인 쌍: (1,9) (3,7) |
[1, 1, 1, 1, 1] |
3 | 10 | 0 | 모든 쌍의 합이 2로 lo에 못 미침 |
weights.length ≤ 100,000weights[i] ≤ 1,000,000,000lo ≤ hi ≤ 2,000,000,000lo, hi는 정수입니다.number로 정확히 표현 가능한 범위입니다.시간 복잡도 목표: O(N log N)
공간 복잡도 목표: O(N) 이하 (정렬 공간 제외 시 O(1))
▶ 실행은 기록 없이 채점만, 제출은 결과가 진행률·오답노트에 기록됩니다.