힙
-
프로그래머스 문제 풀이 이중 우선순위 큐24년 11월 이전/레거시-프로그래머스-코딩 테스트 고득점 kit 2019. 12. 5. 16:57
문제 URL 이중 우선순위 큐 Contents 문제 지문 파악하기 구르미의 알고리즘 풀이 문제 지문 파악하기 이번에도, 입력을 통해서 문제를 파악해보도록 하겠습니다. 문제의 입력은 이렇습니다. 입력: operations = ["I 16","D 1"] 이제 차례 차례 operations를 보고 이중 우선순위 큐에 데이터를 넣어봅시다. 먼저 첫번 째입니다. 해당 문자열을 " " 기준으로 자릅니다. elem = "I 16" op = "I" num = 16 이제 우선순위 큐에 16을 저장합니다. pq = [ 16 ] 이제 다음 데이터를 봅시다. 데이터는 이렇게 될 겁니다. elem = "D 1" op = "D" num = 1 pq = [ 16 ] 이제 D에 1이 나왔으니 우선순위 큐 최댓값을 제거합니다. pq ..
-
프로그래머스 문제 풀이 디스크 컨트롤러24년 11월 이전/레거시-프로그래머스-코딩 테스트 고득점 kit 2019. 12. 4. 23:37
문제 URL 디스크 컨트롤러 Contents 문제 지문 파악하기 구르미의 알고리즘 풀이 문제 지문 파악하기 이번에도, 입력을 통해서 문제를 파악해보도록 하겠습니다. 문제의 입력은 이렇습니다. 입력: jobs = [[0, 3], [1, 9], [2, 6]] 이 때, 먼저 최초 작업은 request=0, expend=3인 작업을 진행합니다. 그러면 결국 이렇게 됩니다. jobs = [[1, 9], [2, 6]] n = 1 //처리한 작업의 개수 time = 3 //현재 시간 (0 + expend=3) answer = 3 // 작업 요청부터 작업이 마무리까지 걸린 시간 (0 + expend) 이제 어떤 작업을 골라야 할까요? 이럴 경우, 요청 시간이 짧은 걸 먼저 처리할수록, answer에 크기가 작아집니다...
-
프로그래머스 문제 풀이 라면 공장24년 11월 이전/레거시-프로그래머스-코딩 테스트 고득점 kit 2019. 12. 2. 11:22
문제 URL 라면 공장 Contents 문제 지문 파악하기 구르미의 알고리즘 풀이 문제 지문 파악하기 이번에도, 입력을 통해서 문제를 파악해보도록 하겠습니다. 문제의 입력은 이렇습니다. 입력: stock = 4 dates = [4, 10, 15] supplies = [20, 5, 10] k = 30 문제에 따르면, 4일 째에 물량이 처음으로 동이 납니다. 4일 째 stock = 0 (4-4 (dates[0])) 그런데, dates 에는 4가 있습니다. 따라서 4일째, 물량인 20을 받습니다. 4일 째 stock = 20 (0 + 20 (supplies[0])) 이후, 우리는 10일 째, 15일 째 물량을 공급 받을 수 있습니다. 문제에 따르면, "최대한 적게 공급을 받는다"라고 적혀 있으니, 최대한 날짜..
-
프로그래머스 문제 풀이 더 맵게24년 11월 이전/레거시-프로그래머스-코딩 테스트 고득점 kit 2019. 11. 16. 16:01
이 문제는 이시윤 강사님의 프로그래머스 강좌 "파이썬을 무기로, 코딩테스트 광탈을 면하자!"를 보고 정리한 내용입니다. 문제 URL 더 맵게 Contents 문제 지문 파악하기 강사님의 알고리즘 풀이 구르미의 알고리즘 풀이 문제 지문 파악하기 문제의 입력을 통해서, 문제를 어떻게 풀어야할지 생각해봅시다. 문제 입력 : scoville = [1, 2, 3, 9, 10, 12] K=7 scoville에서 K보다 작은 수는 1, 2, 3이 존재합니다. 따라서 scoville을 섞어주어야 합니다. scoville에서 가장 작은 원소 1과, 두번째로 작은 원소 2를 꺼냅니다. 그 후 다음 수식을 적용시켜서 값을 저장합니다. 수식 : 가장 작은 원소 + (두 번째로 작은 원소 * 2) 즉, 수식을 적용하면 "1 +..
-
정렬 알고리즘 4부 힙 정렬24년 11월 이전/레거시-자료구조 2019. 9. 14. 13:57
Contents 시작하며... 힙 정렬의 이해와 구현 힙 정렬의 성능 분석 마치며... 시작하며... 구르미의 "Computer Science 정복하기 - 자료구조"의 열 여섯 번째 장입니다. 이 장의 대략적인 내용은 다음과 같습니다. 힙 정렬의 이해와 구현 힙 정렬의 성능 분석 이 장의 소스코드는 다음을 참고해주세요. url: https://github.com/gurumee92/datastructure branch: ch16 code directory: src/ch16 자 시작합시다! 힙 정렬의 이해와 구현 우리는 지난 세 장(13 ~ 15장)에 걸쳐서 버블 정렬, 선택 정렬, 삽입 정렬을 배웠습니다. 이들의 시간 복잡도는 O(N^2)입니다. 이제부터는 조금 복잡하지만, 조금 더 성능이 좋은 정렬 알고..
-
자료구조 우선순위 큐와 구현24년 11월 이전/레거시-자료구조 2019. 9. 11. 16:26
Contents 시작하며... 우선 순위 큐의 이해 힙의 이해와 구현 자료구조 힙이란? 힙의 ADT와 헤더 힙의 생성과 파괴 힙의 데이터 확인 힙의 인덱스 조정 힙의 데이터 추가 힙의 데이터 삭제 우선순위 큐의 구현 우선순위 큐의 ADT와 헤더 우선순위 큐의 생성과 파괴 우선순위 큐의 데이터 확인 우선순위 큐의 데이터 추가 우선순위 큐의 데이터 삭제 제네릭을 사용하기 위한 코드 마치며... 시작하며... 구르미의 "Computer Science 정복하기 - 자료구조"의 열 두 번째 장입니다. 이 장의 대략적인 내용은 다음과 같습니다. 우선순위 큐의 이해 힙의 이해와 구현 우선순위 큐의 구현 이 장의 소스코드는 다음을 참고해주세요. url: https://github.com/gurumee92/datastr..