5주차 · 해시: 맵과 셋
쉬움해시배열

중복 원소 찾기

정수 배열 nums가 주어져요. 앞에서부터 훑을 때 처음으로 다시 나온 값을 반환해요.

다시 나온 값이 하나도 없으면 -1을 반환해요. 배열에 -1이 들어 있을 수도 있지만, 그 경우에도 -1이 두 번 나왔다면 답은 -1이에요.

예시

예시 1
예시 2
예시 3

제한 사항

  • 1 ≤ nums.length ≤ 100,000
  • -10^9 ≤ nums[i] ≤ 10^9
이미 본 값을 셋에 넣어두면 '본 적 있나?'를 평균 O(1)에 물어볼 수 있어요. 배열을 두 번 도는 O(n²) 대신 한 번만 돌면 돼요.
javascript
function duplicateCheck(nums) {
const seen = new Set();
for (const n of nums) {
if (seen.has(n)) return n;
seen.add(n);
}
return -1;
}
에디터를 불러오고 있어요…
코드를 작성하고를 눌러 예시 테스트를 확인해 보세요.