N=int(input())
M=int(input())
L=sorted(list(map(int,input().split())))
count=0
start=0
end=N-1
while start<end:
if L[start]+L[end]==M:
count+=1
start+=1
elif L[start]+L[end]<M:
start+=1
else:
end-=1
print(count)
📌 만들수 있는 갑옷의 개수를 어떻게 구할 것인가?
아주 기초적이고 전형적인 투 포인터 문제이다.
정렬된 리스트에서 start=0 , end=N-1로 잡고 두 수의 합이 M과 같으면 count 변수에 1을 더해준다.
만약 M보다 작다면 start를 증가시키고 M보다 크다면 end를 감소 시킨다.
✅ 코드에서 중요한 부분