분류 전체보기


99클럽 코테 스터디 | 비기너 | 10일차접근 방법 x축 또는 y축에 평행한 직선의 개수는 아래와 같은 조건을 만족한다. - x축에 평행 : y끼리의 좌표가 같아야 함 - y축에 평행 : x끼리의 좌표가 같아야 함 만일 (0, 0), (5, 0), (10, 0)이라는 좌표가 주어지면, 이 세 점은 동일한 y 좌표를 가지고 있지만 실제로 x축에 평행한 직선은 1개만 생성된다. 따라서 x 좌표(혹은 y 좌표)가 2개 이상 나타나는 경우 평행선이 1개 나타난다고 간주하고 문제를 접근했다. 이를 해결하기 위해 아래와 같은 단계로 나누었다. 1. x 좌표들을 key로 가지고, 모든 점들에서 x 좌표가 나타난 횟수를 value로 가지는 dictionary인 dict_x를 정의한다2. y 좌표들을 key로..

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): ..

def bubble_sort(array): n = len(array) for i in range(n - 1): for j in range(n - i - 1): if array[j] > array[j + 1]: array[j], array[j + 1] = array[j + 1], array[j] return arraybubble_sort(input)print("정답 = [1, 2, 4, 6, 9] / 현재 풀이 값 = ",bubble_sort([4, 6, 2, 9, 1]))print("정답 = [-1, 3, 9, 17] / 현재 풀이 값 = ",bubble_sort([3,-1,17,9]))print("정답 = [-3, 32, 44,..

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..


접근 방법문제의 패턴을 단순화시켜서 접근을 해보면, n개의 숫자들의 연산에서 (n-1)개까지의 숫자들 연산 후 n번째 숫자를 더할 것이냐, 뺄 것이냐의 2가지 방법으로 분기할 수 있다. 즉, 입력 값 number가 [1, 2, 3, 4] 일 때, [1, 2, 3]의 연산 이후 마지막 숫자인 4를 더한 값과 뺀 값의 2가지 결과를 얻을 수 있다는 것이다. 이를 구현하기 위해 재귀함수를 활용할 수 있다. 전체 코드의 큰 흐름은 아래와 같다. 1. 재귀 함수의 입력값으로 array와 현재 index, 현재 sum을 받는다.2. 함수 내에서 array와 다음 index의 숫자에 대하여 sum에 더하거나 빼는 것을 반복적으로 호출한다.3. 만일 index의 값이 전체 array의 길이와 같으면, 즉 맨 마지막..


99클럽 코테 스터디 | 비기너 | 7일차 def solution(array): good_word_num = 0 for i in range(len(array)): stack = [] for j in range(len(array[i])): if stack and stack[-1] == array[i][j]: stack.pop() else: stack.append(array[i][j]) if not stack: good_word_num += 1 print(good_word_num)N = int(input())words = [input() for..

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..