๋ชฉ๋ก์๊ณ ๋ฆฌ์ฆ๋ฌธ์ ํ์ด/LeetCode (18)
Study Anything ๐ง
#HashTable #DFS #BFS ์ง์์ ๊ณ ์ ID์ ์ค์๋, ๋ถํ ์ง์์ ID๋ฅผ ํฌํจํ ์ง์ ์ ๋ณด์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๊ฐ ์๋ค. ์ง์ ๋ฐฐ์ด employees๋ ๋ค์์ ํน์ง์ ๊ฐ์ง๋ค. - employees[i].id ๋ i๋ฒ์งธ ์ง์์ ID์ด๋ค. - employees[i].importance ๋ i๋ฒ์งธ ์ง์์ ์ค์๋ ๊ฐ์ด๋ค. - employees[i].subsciates ๋ i๋ฒ์งธ ์ง์์ ๋ถํ ์ง์ ID ์ ๋ชฉ๋ก์ด๋ค. ์ง์์ ID๋ฅผ ๋ํ๋ด๋ id๊ฐ ์ฃผ์ด์ก์ ๋ ์ด ์ง์๊ณผ ๋ชจ๋ ์ง๊ฐ์ ์ ์ธ ๋ถํ ์ง์์ ์ด ์ค์๋ ๊ฐ์ ๋ฐํํ๋ค. Trial 1 : Java, 21/02/19 /* // Definition for Employee. class Employee { public int id; public int impor..
#String #Stack ๊ดํธ '(', ')' ๋ ์๋ฌธ์๋ก ์ด๋ฃจ์ด์ง ๋ฌธ์์ด s ๊ฐ ์ฃผ์ด์ง๋ค. ์ต์ ๊ฐ์์ ๊ดํธ๋ฅผ ์ญ์ ํ ์ ํจ ๋ฌธ์์ด์ ๋ฐํํ๋ผ. ์ผ๋ฐ์ ์ผ๋ก, ๊ดํธ ๋ฌธ์์ด์ ๋ค์์ ๊ฒฝ์ฐ์ ์ ํจํ๋ค. ๋น ๋ฌธ์์ด์ด๊ฑฐ๋ ์๋ฌธ์๋ง ํฌํจ๋ ๋ฌธ์์ด ์ ํจํ ๋ฌธ์์ด A,B ๊ฐ ์ฐ๊ฒฐ๋ ๋ฌธ์์ด ์ ํจํ ๋ฌธ์์ด A๋ก ์ด๋ฃจ์ด์ง ๋ฌธ์์ด (A) Trial 1 : Python3, 22/03/15 class Solution: def minRemoveToMakeValid(self, s: str) -> str: s = list(s) # ๋ฌธ์์ด์ ๋ฆฌ์คํธ๋ก ๋ณํ tmp = [] # ๊ดํธ ์์ ์ ์ฅํ ๋ฆฌ์คํธ ์ ์ธ for i, char in enumerate(s):# enumerate() ๋ฉ์๋๋ ์ธ๋ฑ์ค์ ์์ ํจ๊ป ๋ฐํ if char == '..
#Array [x1,x2,...,xn,y1,y2,...,yn] ํํ์ ํฌ๊ธฐ๊ฐ 2n ์ธ ์ ์ ๋ฐฐ์ด์ด ์ฃผ์ด์ก์ ๋, [x1,y1,x2,y2,...,xn,yn] ํํ์ ๋ฐฐ์ด๋ก ๋ฐํํ๋ผ. Trial 1 : Python3, 22/03/10 class Solution: def shuffle(self, nums: List[int], n: int) -> List[int]: re = [] for i in range(n): re.append(nums[i]) re.append(nums[n+i]) return re ํ์ด: ๋ฐฐ์ด์ ํฌ๊ธฐ๊ฐ 2n ์ด๊ณ ๋ฐฐ์ด์ ๋ฐ ๋๋ด์ ๋ ๋๋ ๊ฐ ๋ฐฐ์ด์ด ๋ฒ๊ฐ์๊ฐ๋ฉฐ ์์์๋ถํฐ ๋ฐํํ ๋ฐฐ์ด์ ํฌํจ๋๊ธฐ ๋๋ฌธ์ i ๋ฒ์งธ ์์์ n+i ๋ฒ์งธ ์์๋ฅผ ์ฐจ๋ก๋๋ก ์ถ๊ฐํ๋ค. ๋ฆฌ๋ทฐ: ๋ฐํ์ 37.72%, ๋ฉ๋ชจ๋ฆฌ ..
#Array #DynamicProgramming ์ค ์๊ฐ ์ฃผ์ด์ก์ ๋, ํ์ค์นผ ์ผ๊ฐํ์ ๋ฐํํ๋ผ. ( * ํ์ค์นผ ์ผ๊ฐํ: ๊ฐ ์์น์ ๊ฐ์ด ๋ฐ๋ก ์์ ๋ ๊ฐ์ ํฉ์ผ๋ก ์ด๋ฃจ์ด์ง ์ผ๊ฐํ ) Trial 1 : Python3, 22/03/08 class Solution: def generate(self, numRows: int) -> List[List[int]]: re = [[1]] for r in range(1,numRows): re.append([1] * (r+1)) for i in range(1,r): re[r][i] = re[r-1][i-1] + re[r-1][i] return re ๋ฆฌ๋ทฐ: ๋ฐํ์ 94.90%, ๋ฉ๋ชจ๋ฆฌ 98.61% ์ ๊ฒฐ๊ณผ๋ฅผ ์ป์๋ค. ์ด๋ฒ์ ๋ฌธ์ ๊ฐ ์กฐ๊ธ ์ฝ๊ธด ํ์ง๋ง ์ ๋ฒ ๋ฌธ์ ๋ ๊ทธ๋ ๊ณ Dy..
#Array #DynamicProgramming ์ด๋ค ์ ์ ๋ฐฐ์ด์ด ์ธ ๊ฐ ์ด์์ ์์๋ก ๊ตฌ์ฑ๋์ด ์๊ณ ๊ทธ ์ธ ์์์์ ์ฐ์๋ ๋ ์์์ ์ฐจ์ด๊ฐ ๊ฐ์ผ๋ฉด ๊ทธ ๋ฐฐ์ด์ ์ฐ์ ์ด๋ผ๊ณ ํ์. (ex. [1,3,5,7,9], [7,7,7,7], [3,-1,-3,-5,-9]) nums ๋ผ๋ ์ ์ ๋ฐฐ์ด์ด ์ฃผ์ด์ก์ ๋, ์ฐ์ ์ธ ํ์ ๋ฐฐ์ด์ ๊ฐ์๋ฅผ ๋ฐํํ๋ผ. ์ฌ๊ธฐ์์ ํ์ ๋ฐฐ์ด์ด๋ ๋ฐฐ์ด์์ ์ฐ์๋ ์ผ๋ถ๋ฅผ ์๋ฏธํ๋ค. Trial 1 : Python3, 22/03/04 class Solution: def numberOfArithmeticSlices(self, nums: List[int]) -> int: # ๋ฐฐ์ด ๊ธธ์ด๊ฐ 3 ๋ฏธ๋ง์ด๋ฉด ์ฐ์ ์ธ ํ์ ๋ฐฐ์ด์ ์๋ค if len(nums)= 3: arSbCount.append(count) c..
#Array #HashTable #String ๊ตญ์ ๋ชจ์ค ์ฝ๋๋ ๊ฐ ๋ฌธ์๋ฅผ ์ ๊ณผ ๋์์ ๋งคํํด ํ์ค ์ธ์ฝ๋ฉ์ ์ ์ํ๋ค. (์ธ์ฝ๋ฉํ๋ค.) ํธ์๋ฅผ ์ํด ์์ด ์ํ๋ฒณ์ 26๊ฐ ๊ธ์์ ๋ํ ์ ์ฒด ๋ชจ์ค ๋ณํ ํ๋ฅผ ์ ๊ณตํ๋ค. ๊ฐ ์ฒ ์๋ฅผ ํตํด ๋ชจ์ค ๋ถํธ์ ๊ฒฐํฉ์ผ๋ก ๋ํ๋ผ ์ ์๋ ๋จ์ด ๋ฆฌ์คํธ๊ฐ ์ฃผ์ด์ก์ ๋, ๋ฆฌ์คํธ์ ๋ชจ๋ ๋จ์ด๋ฅผ ๋ชจ์ค ๋ถํธ๋ก ๋ณํํ๊ณ ๋ค๋ฅธ ๋ณํ์ ๊ฐ์ง์๋ฅผ ๋ฐํํ๋ค. ์ฆ, ๋จ์ด๊ฐ ๋ฌ๋ผ๋ ๋ชจ์ค ๋ถํธ๋ก ๋ณํํ์ ๋ ๊ฐ์ ๊ฐ์ด ์ป์ด์ง ์ ์๋ค. (ex. "gin" -> "--...-.", "zen" -> "--...-." ์ผ๋ก ๋ฐํ๊ฐ์ด ๊ฐ์) Trial 1 : Python3, 22/02/27 class Solution: def uniqueMorseRepresentations(self, words: List[..
#Array #Sorting n๊ฐ์ ์ ์ด 2D ํ๋ฉด์ points[i] = [xi, yi] ์ผ๋ก ์ฃผ์ด์ง๋ค. ์์ญ ์์ ๋ค๋ฅธ ์ ์ด ์๋ ๊ฐ์ฅ ๋์ ์์ง์์ญ์ ๋ฐํํ๋ผ. ์์ง์์ญ์ ๋๋น๊ฐ ๊ณ ์ ๋, Y์ถ์ ๋ฐ๋ผ ๋ฌดํํ๊ฒ ํ์ฅํ๋ ์์ญ์ด๋ค. ๊ฐ์ฅ ๋์ ์์ง์์ญ์ ๊ฐ์ฅ ๊ธด ๋๋น๋ฅผ ๊ฐ์ง ์์ญ์ด๋ค. ์์ญ์ ๋ชจ์๋ฆฌ ์์ ์ ์ ์์ญ์ ํฌํจ๋์ง ์๋๋ค. Trial 1 : Python3, 22/02/11 class Solution: def maxWidthOfVerticalArea(self, points: List[List[int]]) -> int: points.sort() re=0 for i in range(1,len(points)): re = max(re, points[i][0]-points[i-1][0]) return ..
#String ์ฃผ์ด์ง ์ ํจํ IP ์ฃผ์๋ฅผ ๋ณ๊ฒฝ๋ ๋ฒ์ ์ผ๋ก ๋ฐํํ๋ผ. ๋ณ๊ฒฝ๋ IP ์ฃผ์๋ ๋ชจ๋ "."๋ฅผ "[.]"๋ก ๋ฐ๊พผ๋ค. Trial 1 : Python3, 22/02/10 class Solution: def defangIPaddr(self, address: str) -> str: return address.replace('.','[.]') ํ์ด: ์ฃผ์ด์ง ๋ฌธ์์ด์ '.' ๋ฌธ์๋ฅผ '[.]'์ผ๋ก ๋ฐ๊พธ๋ฉด ๋๋ ๊ฐ๋จํ ๋ฌธ์ ์ด๋ค. ๋ฆฌ๋ทฐ: ๋ฐํ์ 42.33%, ๋ฉ๋ชจ๋ฆฌ 89.24% ์ ๊ฒฐ๊ณผ๋ฅผ ์ป์๋ค. ๋ฌธ์ ๊ฐ ๊ฐ๋จํ ๋งํผ ๋ฐํ์๊ณผ ๋ฉ๋ชจ๋ฆฌ์ ๋ถํฌ๊ฐ ์ด์ดํ๊ฒ ๋์ด์์๋ ๊ฒ ๊ฐ๋ค. ํ๊ณ ๋ณด๋ ๋ฌธ์ ๊ฐ ๋๋ฌด ๊ฐ๋จํด์ ์กฐ๊ธ์ ๋ฏผ๋งํ์ง๋ง.. ์ผ๋จ์ ํ์์ผ๋ ๊ธ๋ก ๋จ๊ฒจ๋๋ ๊ฒ์ผ๋ก,,
#HashTable #String #SlidingWindow ๋ ๋ฌธ์์ด s์ p๊ฐ ์ฃผ์ด์ง๋ค. ์ด ๋ p์ ๋ชจ๋ ๋ฌธ์๊ฐ ์ฌ์ฉ๋ s์ ์์ ์ธ๋ฑ์ค๋ฅผ ๋ฆฌ์คํธ๋ก ๋ฐํํ๋ค. ๋จ, ๋ฐํํ๋ ๋ฆฌ์คํธ ์์ ์์ ์์๋ ์๊ด์ด ์๋ค. * ์ ๋๊ทธ๋จ(Anagram)์ด๋? ๋จ์ด๋ ๊ตฌ์ ๊ธ์๋ฅผ ์ฌ๋ฐฐ์นํ์ฌ ๋ง๋ ๋จ์ด๋ ๊ตฌ๋ฌธ์ผ๋ก, ๋ชจ๋ ๊ธ์๋ฅผ ํ ๋ฒ์ฉ๋ง ์ฌ์ฉํ๋ค. ์์: (Input) s = "cbaebabacd", p = "abc" (Output) [0,6] Trial 2 : Python3, 22/02/03 class Solution: def findAnagrams(self, s: str, p: str) -> List[int]: result = [] phash = defaultdict(int) shash = defaultdict..
#HashTable #String #SlidingWindow ๋ ๋ฌธ์์ด s์ p๊ฐ ์ฃผ์ด์ง๋ค. ์ด ๋ p์ ๋ชจ๋ ๋ฌธ์๊ฐ ์ฌ์ฉ๋ s์ ์์ ์ธ๋ฑ์ค๋ฅผ ๋ฆฌ์คํธ๋ก ๋ฐํํ๋ค. ๋จ, ๋ฐํํ๋ ๋ฆฌ์คํธ ์์ ์์ ์์๋ ์๊ด์ด ์๋ค. * ์ ๋๊ทธ๋จ(Anagram)์ด๋? ๋จ์ด๋ ๊ตฌ์ ๊ธ์๋ฅผ ์ฌ๋ฐฐ์นํ์ฌ ๋ง๋ ๋จ์ด๋ ๊ตฌ๋ฌธ์ผ๋ก, ๋ชจ๋ ๊ธ์๋ฅผ ํ ๋ฒ์ฉ๋ง ์ฌ์ฉํ๋ค. ์์: (Input) s = "cbaebabacd", p = "abc" (Output) [0,6] Trial 1 : Python3, 22/02/02 class Solution: def findAnagrams(self, s: str, p: str) -> List[int]: result = [] psorted = sorted(p) for i in range(len(s)): ..