๋ฌธ์ ํ์
์ ์ ๋ฐฐ์ด์ธ nums
์์ ๋ ์ธ๋ฑ์ค์ ์ฐจ์ด๊ฐ k
์ดํ์ด๋ฉด์ ๊ฐ์ด ๊ฐ์ผ๋ฉด true
๋ฅผ ๋ฐํํ๊ณ ์๋ค๋ฉด false
๋ฅผ ๋ฐํํด์ผํ๋ค.
ํ์ด
1๏ธโฃ Map์ ์ด์ฉํ ํ์ด
๐ก ๋ ์ค๋ฅธ Ideanums
๋ฅผ ์ํํ๋ฉด์map
์ ๊ฐ์ key๋ก ์ธ๋ฑ์ค๋ฅผ value๋ก ์ ์ฅํ๊ณ , map์ ์ด๋ฏธ ์กด์ฌํ๋ฉด ํ์ฌ ์์น์map
์ ์ ์ฅ๋์ด ์๋ ์ธ๋ฑ์ค์ ์ฐจ์ด๋ฅผ ๊ตฌํด์ ๋น๊ตํด๋ณธ๋ค.
๋ง์ฝ, ์ธ๋ฑ์ค๊ฐ ์ฐจ์ด๊ฐk
๋ณด๋ค ํฌ๋ค๋ฉดmap
์ ๊ฐฑ์ ํด์ค๋ค. ์๋ํ๋ฉด ์ดํ์ ์ธ๋ฑ์ค ์ฐจ์ด๊ฐk
์ดํ์ธ ๊ฒฝ์ฐ๊ฐ ์๊ธธ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
import java.util.*;
class Solution {
public boolean containsNearbyDuplicate(int[] nums, int k) {
HashMap<Integer, Integer> map = new HashMap<>();
int N = nums.length;
for (int i = 0; i < N; i++) {
int num = nums[i];
if (map.containsKey(num)) {
int idx = map.get(num);
if (i - idx <= k) {
return true;
} else {
map.put(num, i);
}
} else {
map.put(num, i);
}
}
return false;
}
}
๊ฒฐ๊ณผ
๐ ํ๊ณ
HashMap์ ํน์ง๋ง ์ ํ์ฉํ๋ฉด๋๋ ๊ฐ๋จํ ๋ฌธ์ ์๋ค.