본문 바로가기

분류 전체보기161

2920-음계 (python) 처음 시도했던 코드 >>> 통과 N, M = map(int, input().split(' ')) cards = list(map(int, input().split(' '))) totals = [] for x in range(N-1): for y in range(x+1, N-1): for z in range(y+1, N): total = cards[x] + cards[y] + cards[z] if total >> data = list(map(int, input().split(' '))) ascending = True descending = True for x in range(1, 8): if data[x-1] < data[x]: descending = False elif data[x] < data[x-1]:.. 2020. 9. 29.
퀵 정렬(quick sort) 분할 정복 알고리즘의 대표적인 예 1. 보통 리스트의 첫 번째 원소를 기준점(pivot)으로 한다 2. pivot보다 작은 데이터는 left 리스트, 큰 데이터는 right 리스트에 더한다 3. left 리스트 + [pivot] + right 리스트를 리턴한다 3-1. left, right 리스트는 재귀용법을 사용해서 위 작업을 반복한다 4. 리스트의 길이가 1이면 해당 리스트를 반환한다 * 시간복잡도 O(n logn) / 최악의 경우 O(n^2) import random def quick_sort(data): if len(data) 2020. 9. 29.
피보나치 수열 구현(재귀함수, 동적계획법 활용) 1. 재귀함수 활용 def fibo(n): if n 2020. 9. 29.
20/09- 프린터 def findMax(waiting_docs): max_priority = 0 for i in range(len(waiting_docs)): if waiting_docs[i][1] > max_priority: max_priority = waiting_docs[i][1] return max_priority def solution(priorities, location): printed_docs = [] indices = [i for i in range(len(priorities))] waiting_docs = list(zip(indices, priorities)) hasMax = False while waiting_docs: max_priority = findMax(waiting_docs) curr_prio.. 2020. 9. 29.