코딩테스트/LeetCode

99클럽 코테 스터디 | 비기너 | 17일차https://leetcode.com/problems/find-the-distance-value-between-two-arrays/description/class Solution: def findTheDistanceValue(self, arr1: List[int], arr2: List[int], d: int) -> int: count = 0 for num1 in arr1: is_true = True for num2 in arr2: if abs(num1 - num2)

99클럽 코테 스터디 | 비기너 | 16일차https://leetcode.com/problems/intersection-of-two-arrays/description/접근 방법1. list 형태의 nums1과 nums2을 set으로 바꿈2. nums1의 원소들에 대하여 nums2에 존재할 경우 set의 형태인 intersection_num에 추가함 class Solution: def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]: intersection_num = set() nums1_set = sorted(set(nums1)) nums2_set = sorted(set(nums2)) ..

99클럽 코테 스터디 | 비기너 | 11일차https://leetcode.com/problems/repeated-dna-sequences/description/ 접근 방법 해시를 이용하여 문제를 해결하였음 1. input s에 나타나는 10개의 letter로 된 DNA Sequence들을 dna_dict의 key에 저장함2. input에서 각 DNA Sequence들이 몇 번씩 출현하는지 횟수를 dna_dict의 value에 저장함3. dna_dict에서 count가 2 이상인 key들을 output 리스트에 추가함class Solution: def findRepeatedDnaSequences(self, s: str) -> List[str]: dna_dict = {} ..

https://leetcode.com/problems/maximum-product-of-two-elements-in-an-array/description/ 접근 방법(Bubble Sort 연습용 문제) 1. Bubble Sort를 통해 전체 array를 정렬한다2. 정렬된 array에서 (가장 마지막 원소 - 1)와 (뒤에서 두번째 원소 - 1)의 값을 곱한 값을 리턴한다 class Solution: def maxProduct(self, nums: List[int]) -> int: n = len(nums) # Bubble Sort for i in range(n - 1): for j in range(n - i - 1): ..

99클럽 코테 스터디 | 비기너 | 9일차https://leetcode.com/problems/design-hashmap/description/ 접근 방법1. __init__() 함수에서 HashMap의 정보를 저장할 array self.HashMap을 선언한다.2. put() 함수에서 self.HashMap의 pair 중 입력 데이터 key와 동일한 값을 가진 key가 이미 존재하면 value 값을 업데이트, 일치하지 않으면 새로운 [key, value] 쌍을 추가한다.3. get()함수에서 self.HashMap의 pair 중 입력 데이터 key와 동일한 값을 가진 데이터가 있으면 해당 key의 vaule를 리턴, 없으면 -1을 리턴한다.4. remove() 함수에서 self.HashMap의 pair..

99클럽 코테 스터디 | 비기너 | 8일차https://leetcode.com/problems/check-if-number-has-equal-digit-count-and-digit-value/description/ 접근 방법 1. dictionary를 활용하여 각 인덱스 숫자가 몇 번씩 나타나야 하는지 저장하여 '모범 답안'을 만든다. 예를 들어, 입력 값이 "1210"의 경우 해당하는 dictionary는 {0: 1, 1:2, 2: 1, 3: 0}이 된다.2. 실제로 각 인덱스 숫자가 몇 번씩 나타났는지 카운트하여 real_count에 저장한다.3. dictionary에 저장된 인덱스 출현 횟수와 real_count의 횟수를 비교하여 틀릴 경우 false를 return 한다. class Soluti..

99클럽 코테 스터디 | 비기너 | 6일차https://leetcode.com/problems/climbing-stairs/description/ 접근 방법 1Queue를 사용해서 문제 해결 시도 -> Time Limit Exceeded Errorfrom collections import dequeclass Solution: def climbStairs(self, n: int) -> int: queue = deque([0]) ways = 0 while queue: current_step = queue.popleft() if current_step == n: ways += 1 e..

99클럽 코테 스터디 | 비기너 | 5일차https://leetcode.com/problems/implement-stack-using-queues/description/ from collections import dequeclass MyStack: def __init__(self): # Initilaize your data structure here self.__main_queue = deque() self.__sub_queue = deque() def push(self, x: int) -> None: # Push element x onto stack self.__main_queue.append(x) def pop(self) ..

99클럽 코테 스터디 | 비기너 | 4일차 https://leetcode.com/problems/implement-queue-using-stacks/description/ class MyQueue: def __init__(self): self.list1 = [] self.list2 = [] def push(self, x: int) -> None: while self.list1: self.list2.append(self.list1.pop()) self.list1.append(x) while self.list2: self.list1.append(self.list2.pop()) def pop(..