파이썬

우선순위 큐는 데이터를 추가한 순서대로 제거하는 선입선출(FIFO) 특성을 가진 일반적인 큐의 자료구조와 달리, 데이터 추가는 어떤 순서로 해도 상관이 없지만, 제거될 때는 가장 작은 값을 제거하는 독특한 특성을 지닌 자료구조입니다. 이 말은 내부적으로 데이터를 정렬된 상태로 보관하는 메커니즘이 있다는 뜻이고, 좀 더 구체적으로 얘기하면 heapq 모듈을 통해 구현되어 있습니다. 내부적으로 heap 모듈을 사용하는 PriorityQueue 클래스의 put(), get() 함수는 O(log n)의 시간 복잡도를 가집니다. 코드예시 from queue import PriorityQueue que = PriorityQueue() # que = PriorityQueue(maxsize=8) 디폴트사이즈는 무한대이..
정의 및 장단점 그리디 알고리즘은 단순하지만 강력한 문제 해결 방법이다. 현재 상황에서 지금 당장 좋은 것을 고르는 방법을 의미한다. 그리디 문제는 매우 다양한 문제가 있으며 미리 유형을 외우고 있지 않아도 알고리즘 문제를 풀 가능성이 높다. 그렇지만 많은 문제를 풀어보는 연습이 필요하다. 그리디 알고리즘은 기준에 따라 좋은 것을 선택하는 알고리즘이므로 문제에서 '가장 큰 순서대로', '가장 작은 순서대로'와 같은 기준을 알게 모르게 제시해준다. 구현방법 보통 while문이나 조건문을 통해 구현이 된다. 문제 예시 그리디 문제의 대표적인 예시로 거스름돈 문제가 있다. 예를 들어 3800원을 거슬러줄 때 최소 지폐,동전수를 구하여라 등의 문제이다. n =1260 count = 0 coin_types = [..
2018 기업 알고리즘 대회 문제이다. 이것이 코딩테스트다 99페이지 문제이다. 나의 코드 N,K = map(int,input().split()) count=0 while N>1: if N>=K: N=N/K count+=1 else: N-=1 count+=1 print(count)
2019 국가 교육기관 코딩테스트 기출문제이다. 이것이코딩테스트다 책 96페이지 문제이다. 나의 코드 N,M = map(int,input().split()) mylist=[] for i in range(N): temp=list(map(int,input().split())) temp.sort() mylist.append(temp[0]) mylist.sort() print(mylist[-1])
2019 국가 교육기관 코딩테스트 기출문제이다. 이것이코딩테스트다 책의 92페이지 문제이다. 나의코드 N,M,K = map(int,input().split()) mylist = list(map(int,input().split())) mylist.sort() first= M//K second = M%K result = mylist[-1]*first*K + mylist[-2]*second print(result) 오늘부터 알고리즘 문제풀이 스터디를 시작하였다. (참여자: 김윤재, 전준, 심승우) 워낙 기초문제라 달 코멘트가 없다.
윤재에요
'파이썬' 태그의 글 목록