만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

합이 K인 수 쌍

면접 대비

시간 제한2초메모리 제한512 MB

요약
서로 다른 값을 가진 수열에서 합이 K가 되는 쌍의 개수를 센다. 순서는 상관없고 각 원소는 한 번만 쓴다.
난이도

쉬움10점 중 3점

유형
배열, 해시맵, 투 포인터, 정렬
정답자
아직 제출이 없습니다

문제

서로 다른 정수 NN개로 이루어진 수열이 주어진다. 이 수열에서 두 원소를 골라 더했을 때 합이 KK가 되는 쌍이 몇 개인지 센다.

쌍은 서로 다른 두 위치의 원소로 이루어지고, 순서는 구분하지 않는다. 즉 (1,6)(1, 6)과 (6,1)(6, 1)은 같은 쌍이다. 같은 원소를 두 번 사용하는 것은 허용하지 않으므로, KK가 짝수이고 K/2K/2가 수열에 있어도 그 값 하나만으로는 쌍이 되지 않는다.

수열이 1,2,3,4,5,61, 2, 3, 4, 5, 6인 경우 K=7K = 7이면 (1,6)(1, 6), (2,5)(2, 5), (3,4)(3, 4)가 조건을 만족하므로 답은 33이고, K=5K = 5이면 (1,4)(1, 4)와 (2,3)(2, 3)이 조건을 만족하므로 답은 22이다.

입력

첫째 줄에 수열의 길이 NN과 목표 합 KK가 공백으로 구분되어 주어진다.

둘째 줄에 수열의 원소 NN개가 공백으로 구분되어 주어진다.

1≤N≤1 0001 \le N \le 1\,000이고, 원소는 모두 서로 다르며 11 이상 10610^6 이하의 정수이다. KK는 11 이상 2×1062 \times 10^6 이하의 정수이다.

출력

합이 KK인 쌍의 개수를 정수 하나로 출력한다.

예제2

  1. 예제 1

    입력
    6 7
    1 3 2 6 5 4
    
    예상 출력
    3
    
  2. 예제 2

    입력
    6 3
    1 2 3 4 5 6
    
    예상 출력
    1