
😎풀이
nums를 오름차 순으로 정렬
- 정렬된
nums 2중 순회
2-1. 현재 짝이 기존에 존재했다면 검사 생략
2-2. 두 수의 차의 절댓값이 k와 동일하다면, 검사 기록에 추가하고 pairs 1 증가
2-3. 두 수의 차의 절댓값이 k를 초과한다면, 이후 모든 수는 검사할 필요 없음
- 두 수의 차의 절댓값이
k와 동일한 고유한 짝의 수 반환
function findPairs(nums: number[], k: number): number {
const n = nums.length
const set = new Set<string>()
const sorted = nums.toSorted((a, b) => a - b)
let pairs = 0
for(let i = 0; i < n; i++) {
for(let j = i + 1; j < n; j++) {
const key = `${sorted[i]},${sorted[j]}`
if(set.has(key)) continue
const diff = Math.abs(sorted[i] - sorted[j])
if(diff === k) {
set.add(key)
pairs++
continue
}
if(diff > k) break
}
}
return pairs
};