๐Ÿ’ป [LeetCode] Contains Duplicate - 217

Ellie Kangยท2022๋…„ 6์›” 9์ผ
0

LEETCODE

๋ชฉ๋ก ๋ณด๊ธฐ
2/2
post-thumbnail

์ง€๋‚œ ๋ฆฟ์ฝ”๋“œ ํฌ์ŠคํŠธ์— ํ•ด์‰ฌ๋งต์„ ์‚ฌ์šฉํ•œ Majority Element ๋ฌธ์ œ๋“ค์„ ํ’€์–ด๋ดค๋Š”๋ฐ, ์ด๋ฒˆ ๋ฌธ์ œ๋„ ๊ฑฐ์˜ ๋น„์Šทํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์งค ์ˆ˜ ์žˆ์–ด์„œ ์งง๊ฒŒ ์งš๊ณ  ๋„˜์–ด๊ฐ€๋ณด๊ฒ ๋‹ค! ๐Ÿ˜š


๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป 217. Contains Duplicate

"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๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์งค ์ˆ˜๋„ ์žˆ๊ฒ ์ง€๋งŒ, ๋‚˜๋Š” ์ง€๊ธˆ ์ธํ„ฐ๋ทฐ๋ฅผ ์ค€๋น„ํ•˜๊ธฐ ๋•Œ๋ฌธ์—..ใ… ใ…  ์ ๋‹นํžˆ ํ•ด์‰ฌ๋งต์„ ์จ์„œ ๋นจ๋ฆฌ๋นจ๋ฆฌ ๋‹ค์Œ ๋ฌธ์ œ๋กœ ๋„˜์–ด๊ฐ€์•ผ ํ•˜๋Š” ํ˜„์‹ค ๐Ÿ˜ฅ

profile
I DO CODE!

0๊ฐœ์˜ ๋Œ“๊ธ€