์ง๋ ๋ฆฟ์ฝ๋ ํฌ์คํธ์ ํด์ฌ๋งต์ ์ฌ์ฉํ Majority Element ๋ฌธ์ ๋ค์ ํ์ด๋ดค๋๋ฐ, ์ด๋ฒ ๋ฌธ์ ๋ ๊ฑฐ์ ๋น์ทํ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ์ฝ๋๋ฅผ ์งค ์ ์์ด์ ์งง๊ฒ ์ง๊ณ ๋์ด๊ฐ๋ณด๊ฒ ๋ค! ๐
"Given an integer array nums, return true if any value appears at least twice in the array, and return false if every element is distinct."
๋ด๊ฐ ์๊ฐํ ์๊ณ ๋ฆฌ์ฆ:
- empty ํด์ฌํ ์ด๋ธ์ ๋ง๋ค๊ณ , array nums ๋ฅผ loop์ ๋๋ ธ์ ๋,
- ์ฐ๋ฆฌ๊ฐ ์ฐพ๋ key ๊ฐ์ด ํด์ฌํ ์ด๋ธ ์์ ์์ผ๋ฉด True ๋ฆฌํด
- ํด์ฌํ ์ด๋ธ ์์ ์์ผ๋ฉด ํด์ฌํ ์ด๋ธ์ key๊ฐ์ element๋ก, value๊ฐ์ index๋ก ์ถ๊ฐ
- loop์ ๋ฒ์ด๋ฌ์ ๋, False ๋ฆฌํด (๋ฃน ๋ด์์ ์๋ฌด๊ฒ๋ ๋ฆฌํดํ์ง ์์๋ค๋ ๊ฑด ๋ชจ๋ element๋ค์ด distinct ํ๋ค๋ ๋ป)
๐๐ป ์ฝ๋๋ฅผ ์ ์ด๋ณด์!
def containsDuplicate(nums: List[int]) -> bool:
hashTable = {}
for idx, val in enumerate(nums):
if val in hashTable: # there are duplicates
return True
else:
hashTable[val] = idx # adding into hashTable
return False
์ฌ์ด ์ฝ๋๋ค!
๊ทธ๋ฅ brute force ๋ก๋ Time complexity๊ฐ O(n^2) ๊ฐ ๋์ฌํ
๋ฐ ํด์ฌ๋งต์ ์ฐ๋ฉด ๋น๊ต์ ๋น ๋ฅด๊ฒ O(n) ์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง ์ ์๋ค ๐ค
์ด ๋ฌธ์ ๋ ํด์ฌํ
์ด๋ธ..
๋ฌผ๋ก ๋ค๋ฅธ approach๋ก ์๊ณ ๋ฆฌ์ฆ์ ์งค ์๋ ์๊ฒ ์ง๋ง, ๋๋ ์ง๊ธ ์ธํฐ๋ทฐ๋ฅผ ์ค๋นํ๊ธฐ ๋๋ฌธ์..ใ
ใ
์ ๋นํ ํด์ฌ๋งต์ ์จ์ ๋นจ๋ฆฌ๋นจ๋ฆฌ ๋ค์ ๋ฌธ์ ๋ก ๋์ด๊ฐ์ผ ํ๋ ํ์ค ๐ฅ