๋ชฉ๋ก์๊ณ ๋ฆฌ์ฆ๋ฌธ์ ํ์ด (20)
Study Anything ๐ง
#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)): ..
#Tree #DFS #BinarySearchTree #Sorting #BinaryTree ์ด์งํ์ํธ๋ฆฌ root1, root2 ๊ฐ ์ฃผ์ด์ก์ ๋ ๋ ํธ๋ฆฌ์ ๋ชจ๋ ๋ ธ๋๊ฐ์ ํฌํจํ๊ณ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋ ๋ฆฌ์คํธ๋ฅผ ๋ฐํํ๋ผ. Trial 1 : Python3, 22/01/27 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right = right class Solution: def getAllElements(self, root1: TreeNode, root2: TreeNode) -> List[int..
#String ๋๋ฌธ์์ ์ฌ๋ฐ๋ฅธ ์ฌ์ฉ์ ๋ค์์ผ๋ก ์ ์ํ๋ค. ์ฒซ๋ฒ์งธ, "USA"์ฒ๋ผ ๋จ์ด์ ๋ชจ๋ ๋ฌธ์๋ ๋๋ฌธ์์ด๋ค. ๋๋ฒ์งธ, "leetcode"์ฒ๋ผ ๋จ์ด์ ๋ชจ๋ ๋ฌธ์๋ ๋๋ฌธ์๊ฐ ์๋๋ค. ์ธ๋ฒ์งธ, "Google"์ฒ๋ผ ๋จ์ด์ ์ฒซ ๊ธ์๋ง ๋๋ฌธ์์ด๋ค. (String) ๋จ์ด๊ฐ ์ฃผ์ด์ก์ ๋, ๋๋ฌธ์์ ์ฌ์ฉ์ด ์ฌ๋ฐ๋ฅด๋ฉด true๋ฅผ ๋ฐํํ๊ณ ์ณ์ง ์์ผ๋ฉด false๋ฅผ ๋ฐํํ๋ค. Trial 1 : Python3, 22/01/24 class Solution: def detectCapitalUse(self, word: str) -> bool: if word.isupper(): return True elif word.islower(): return True else: if word[0].isupper(): for i in range..
#Array #Matrix accounts 2์ฐจ์ ๋ฐฐ์ด์ด ์ฃผ์ด์ก์ ๋, accounts[i][j] ๋ i๋ฒ์งธ ์ฌ๋์ j๋ฒ์งธ ๊ณ์ข์ ๋ด๊ธด ๊ธ์ก์ด๋ค. ๋ณด์ ํ ์์ฐ์ด ๊ฐ์ฅ ๋ง์ ์ฌ๋์ ์์ฐ ๊ธ์ก์ ๋ฐํํ๋ผ. Trial 1 : Python3, 22/01/23 class Solution: def maximumWealth(self, accounts: List[List[int]]) -> int: max_wealth = 0 for acc in accounts: acc_sum = sum(acc) if acc_sum > max_wealth: max_wealth = acc_sum return max_wealth ๋ฆฌ๋ทฐ: ๋ฐํ์ 84.67%, ๋ฉ๋ชจ๋ฆฌ 95.61%
#Array #Greedy n๊ฐ์ gas station(์ดํ ์คํ ์ด์ )์ด ์๋ค. ์ด staion๋ค์ ์ํ๋ก ์์ ์๋ค. ๋ฐฐ์ด gas๋ i๋ฒ์งธ ์คํ ์ด์ ์์ ์ถฉ์ ํ ์ ์๋ ๊ฐ์ค ์์ด๊ณ , ๋ฐฐ์ด cost๋ i๋ฒ์งธ ์คํ ์ด์ ์์ i+1๋ฒ์งธ ์คํ ์ด์ ์ผ๋ก ์ด๋ํ ๋ ํ์ํ ๊ฐ์ค ์์ด๋ค. ๊ธธ์ ๋ฐ๋ผ ์ด๋ํ ๋ ์ฒ์ ์ถ๋ฐํ ์คํ ์ด์ ์ผ๋ก ๋์์ฌ ์ ์์ผ๋ฉด ์ถ๋ฐํ ์คํ ์ด์ ์์น(index)๋ฅผ ๋ฐํํ๋ค. ๋ง์ฝ ๋์์ฌ ์ ์์ผ๋ฉด -1๋ฅผ ๋ฐํํ๋ค. ์กฐ๊ฑด: ์ถ๋ฐํ๋ ์คํ ์ด์ ์์ ๊ฐ์ค๋ฅผ ์ถฉ์ ํ๊ธฐ ์ ์ ๊ฐ์ค ํฑํฌ์๋ ๊ฐ์ค๊ฐ ์๋ค. ๋ฐฐ์ด gas, cost ํฌ๊ธฐ๋ n์ด๋ค. ์ ์ค๋ช ๊ณผ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๊ฒฐ๊ณผ๋ ํ ๊ฐ์ง ๋ฟ์ด๋ค. Trial 1 : Python, 22/01/21 class Solution: def canCompleteCircui..
#Array #BinarySearch #Sorting ์ฃผ์ด์ง int ๋ฆฌ์คํธ nums ์์ target ๊ณผ ๊ฐ์ ์์์ ์ธ๋ฑ์ค๋ฅผ ๋ฆฌ์คํธ๋ก ๋ฐํํ๋ค. ์กฐ๊ฑด: target ๊ณผ nums ์ ์์๋ฅผ ๋น๊ตํ ๋ nums ๋ฆฌ์คํธ๊ฐ ์ค๋ฆ์ฐจ์ ์ ๋ ฌ๋์ด์์ด์ผ ํ๋ค. Trial 1 : Python, 22/01/16 class Solution(object): def targetIndices(self, nums, target): """ :type nums: List[int] :type target: int :rtype: List[int] """ sNum = nums.sort() rList = [] for i in range(0,len(nums)): if nums[i] == target: rList.append(i) return..
#HashTable #String ๋ฌธ์์ด paragraph ์ ๋ฌธ์์ด ๋ฆฌ์คํธ banned ๊ฐ ์ฃผ์ด์ก์ ๋, banned ๋ฆฌ์คํธ์ ๋จ์ด๋ฅผ ์ ์ธํ๊ณ ๊ฐ์ฅ ๋ง์ด ๋ฑ์ฅํ ๋จ์ด๋ฅผ ๋ฐํํ๋ค. ์กฐ๊ฑด: banned ๋ฆฌ์คํธ์๋ ์ต์ ํ ๊ฐ์ ๋จ์ด๊ฐ ์๊ณ ์๋ก ๊ฒน์น๋ ๋จ์ด๋ ์๋ค. ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์์ผ๋ฏ๋ก ๋ต์ ์๋ฌธ์๋ก ๋ฐํํด์ผ ํ๋ค. Trial 1 : Python3, 22/01/08 class Solution: def mostCommonWord(self, paragraph: str, banned: List[str]) -> str: # paragraph๋ฅผ ์๋ฌธ์๋ก ๋ฐ๊พธ๊ณ ํน์๋ฌธ์๋ฅผ ์ ๊ฑฐํจ pStr = ''.join(c if c.isalnum() else ' ' for c in paragraph.lower()) # pa..
#Array ์ด์ง ๋ฐฐ์ด nums ์ ์ ์ k๊ฐ ์ฃผ์ด์ก์ ๋, ๋ชจ๋ 1์ด ์๋ก k์นธ ์ด์ ๋จ์ด์ ธ ์์ผ๋ฉด true๋ฅผ ๋ฐํํ๊ณ ๊ทธ๋ ์ง ์์ผ๋ฉด false๋ฅผ ๋ฐํํ๋ค. Trial 1 : Python3, 22/01/07 class Solution: def kLengthApart(self, nums: List[int], k: int) -> bool: flag = False # ๋ฐฐ์ด์ด 0์ผ๋ก ์์ํ ๊ฒฝ์ฐ, ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ์ฐํ์ง ์๊ธฐ ์ํ ์ฅ์น d = 0 # ๊ฑฐ๋ฆฌ for n in nums: if n == 0: d += 1 else: if flag: # ์ด์ ์ 1์ด ์์์ ๊ฒฝ์ฐ if d < k: return False d = 0 flag = True return True ํ์ด: 1 ์ฌ์ด์ ๊ฑฐ๋ฆฌ๋ง ๊ณ ๋ คํ๊ธฐ ๋๋ฌธ์ ๋ฐฐ์ด์ด 0์ผ๋ก ..
#Array #Hash Table #Graph ๋ง์์๋ n๋ช ์ ์ฌ๋์ด ์๊ณ ํ ๋ช ์ ๋ง์ํ์ฌ๋ฅผ ์ฐพ์๋ผ. ์กฐ๊ฑด: ๋ง์ ํ์ฌ๋ ์๋ฌด๋ ์ ๋ขฐํ์ง(trust) ์๋๋ค. ๋ง์ ํ์ฌ๋ฅผ ์ ์ธํ ๋ชจ๋ ์ฌ๋์ด ๋ง์ ํ์ฌ๋ฅผ ์ ๋ขฐํ๋ค. ์ ๋ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์ฌ๋์ด ๋ฑ ํ ๋ช ์๋ค. ai๋ก ๋ถ๋ฅ๋ ์ฌ๋์ด bi๋ก ๋ถ๋ฅ๋ ์ฌ๋์ ์ ๋ขฐํ๋ค๋ ๊ฒ์ ๋ํ๋ด๋ trust[i] = [ai, bi] ๋ฐฐ์ด์ด ์ฃผ์ด์ง๋ค. ๋ง์ ํ์ฌ๊ฐ ์กด์ฌํ๋ ๊ฒฝ์ฐ ๋ง์ ํ์ฌ์ ๋ ์ด๋ธ์ ๋ฐํํ๊ณ ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ -1์ ๋ฐํํ๋ค. Trial 1 : Python3, 22/1/3 class Solution: def findJudge(self, n: int, trust: List[List[int]]) -> int: person = [0]*(n+1) # ๋ฐฐ์ด ํฌ๊ธฐ๋ฅผ ..