알고리즘 (138) 썸네일형 리스트형 [알고리즘] 퀵 정렬 (quick sort) 퀵 정렬 이란? 기준점(pivot)을 정해서 기준점보다 작은 데이터는 왼쪽(left), 큰 데이터는 오른쪽(right)으로 모으는 함수를 작성 각 왼쪽(left), 오른쪽(right)은 재귀용법으로 다시 동일 함수를 호출하여 반복함 왼쪽(left) + 기준점(pivot) + 오른쪽(right) 을 return 파이썬 코드 구현 def qsort(data): if len(data) item ] right = [ item for item in data[1:] if pivot [알고리즘] DP (동적계획법) DP(Dynamic Programming) 란? 입력 크기가 작은 부분문제들을 해결하고 난 후, 이것을 활용하여 큰 크기의 부분문제를 해결, 최종적으로 전체문제를 해결 상향식 접근법임 - 가장 최하위 해답을 구한 후, 이를 이용해서 상위 문제를 풀어가는 방식 Memorization 기법을 사용 - 이전에 계산한 값을 저장하여, 다시 계산하지 않도록 해서 전체 실행속도 빠르게 재귀 vs 동적계획법 n을 입력받았을 때 피보나치 수열로 결과값을 출력하시오 #재귀호출 def fibo(num): if num [알고리즘] 백준 1236 성지키기 n, m = map(int, input().split(' ')) arr = [] for _ in range(n): arr.append(input()) row = [0] * n col = [0] * m for i in range(n): for j in range(m): if arr[i][j] == 'X': row[i] = 1 col[j] = 1 row_count, col_count = 0, 0 for i in row: if i == 0: row_count += 1 for i in col: if i == 0: col_count += 1 print(max(row_count,col_count)) 배열에 문자열을 n번 append하면 이차원배열 형식으로 접근가능하다는,, arr.append('abcd') arr... [알고리즘] 백준 1668 트로피진열 def display(arr): count = 1 now = arr[0] for i in range(1,len(arr)): if now 4 2 [알고리즘] 백준 1302 베스트셀러 n = int(input()) book_list = {} for _ in range(n): book = input() if book in book_list: book_list[book] += 1 else: book_list[book] = 1 target = max(book_list.values()) array = [] for k, v in book_list.items(): if v == target: array.append(k) book_max = [] book_max = sorted(array) print(book_max[0]) [알고리즘] 백준 1568 새 n = int(input()) k = 1 count = 0 while n > 0: if n < k: k = 1 else: n -= k k += 1 count += 1 print(count) [알고리즘] 백준 1543 문서검색 / python doc = input() search = input() count = 0 i = 0 while i [알고리즘] 백준 2110 공유기 설치 n, c = map(int, input().split(" ")) location = [] for _ in range(n): location.append(int(input())) location.sort() start = location[1] - location[0] end = location[-1] - location[0] ans = 1 while start 이전 1 ··· 12 13 14 15 16 17 18 다음