정렬
-
프로그래머스 문제 풀이 H-Index24년 11월 이전/레거시-프로그래머스-코딩 테스트 고득점 kit 2019. 12. 7. 15:44
문제 URL H-Index Contents 문제 지문 파악하기 구르미의 알고리즘 풀이 문제 지문 파악하기 이번에도, 입력을 통해서 문제를 파악해보도록 하겠습니다. 문제의 입력은 이렇습니다. 입렵: citations = [3, 0, 6, 1, 5] H-Index는 N편 중 h번 이상, h번 이하 인용된 수를 뜻합니다. 무슨 말인지 살펴보죠. 해당 입력에서 논문는 총 5편이 있죠? 즉, n은 5입니다. n = 5 이제 n = 0 부터 H-Index를 찾아봅시다. 다음은 각 n에 대해서, H-Index를 만족하는지 여부입니다. n = 0 n >= 0 논문 : 5 n = 1 논문 : 4 n = 2 논문 : 4 n = 3 논문 : 3 n = 4 논문 : 2 n = h_index // 멈춤 즉, i=2에서 h_in..
-
프로그래머스 문제 풀이 K번째 수24년 11월 이전/레거시-프로그래머스-코딩 테스트 고득점 kit 2019. 12. 6. 14:02
문제 URL K번째 수 Contents 문제 지문 파악하기 구르미의 알고리즘 풀이 문제 지문 파악하기 이번에도, 입력을 통해서 문제를 파악해보도록 하겠습니다. 문제의 입력은 이렇습니다. 입력 : array = [1, 5, 2, 6, 3, 7, 4] commands = [[2, 5, 3], [4, 4, 1], [1, 7, 3]] 이제 commands에서 하나씩 꺼내서, 시작점, 끝점, 반환할 인덱스를 가져오겠습니다. command = [2, 5, 3] //commands[0] start = 2 end = 5 idx = 3 문제에 따르면, 인덱스가 0부터가 아닌 1로 되어 있습니다. 이를 조정해주어야 합니다. command = [2, 5, 3] start = 1 //인덱스 조정 end = 5 idx = 2 ..
-
프로그래머스 문제 풀이 가장 큰 수24년 11월 이전/레거시-프로그래머스-코딩 테스트 고득점 kit 2019. 11. 6. 14:58
이 문제는 이시윤 강사님의 프로그래머스 강좌 "파이썬을 무기로, 코딩테스트 광탈을 면하자!"를 보고 정리한 내용입니다. 문제 URL 가장 큰 수 Contents 문제 지문 파악하기 강사님의 알고리즘 풀이 구르미의 알고리즘 풀이 문제 지문 파악하기 이 문제는 주어진 입력 numbers를 가지고 가장 큰 수를 만드는 것입니다. 먼저 첫 번째 입력을 볼까요? numbers = [6, 10, 2] 여기서 우리가 원하는 기준 "큰 수를 만드는 순"으로 정렬을 해주어야 합니다. 이를테면 6, 10 을 비교합시다. 6 > 10 ( "6" + "10" = "610" > "10" + "6" = "106") 우리 정렬 기준에서는 6이 10보다 우선순위가 높습니다. 왜냐하면, 두 숫자를 가지고 만든 숫자 610, 106 중..
-
정렬 알고리즘 7부 기수 정렬24년 11월 이전/레거시-자료구조 2019. 9. 15. 12:36
Contents 시작하며... 기수 정렬의 이해와 구현 기수 정렬의 성능 분석 마치며... 시작하며... 구르미의 "Computer Science 정복하기 - 자료구조"의 열 아홉 번째 장입니다. 이 장의 대략적인 내용은 다음과 같습니다. 기수 정렬의 이해와 구현 기수 정렬의 성능 분석 현재까지 공부한 정렬 알고리즘들의 성능 비교 이 장의 소스코드는 다음을 참고해주세요. url: https://github.com/gurumee92/datastructure branch: ch19 code directory: src/ch19 자 시작합시다! 기수 정렬의 이해와 구현 보통 정렬 알고리즘의 최고 성능의 한계는 O(N * logN)이라고 합니다. 이번 장에서는 특정 제약 조건 속에서 이 한계를 뛰어넘는 정렬 알고..
-
정렬 알고리즘 6부 퀵 정렬24년 11월 이전/레거시-자료구조 2019. 9. 14. 17:21
Contents 시작하며... 퀵 정렬의 이해와 구현 퀵 정렬의 성능 분석 마치며... 시작하며... 구르미의 "Computer Science 정복하기 - 자료구조"의 열 여덟 번째 장입니다. 이 장의 대략적인 내용은 다음과 같습니다. 퀵 정렬의 이해와 구현 퀵 정렬의 성능 분석 이 장의 소스코드는 다음을 참고해주세요. url: https://github.com/gurumee92/datastructure branch: ch18 code directory: src/ch18 자 시작합시다! 퀵 정렬의 이해와 구현 우리는 지난 세 장(13 ~ 15장)에 걸쳐서 버블 정렬, 선택 정렬, 삽입 정렬을 배웠습니다. 이들의 시간 복잡도는 O(N^2)입니다. 이제부터는 조금 복잡하지만, 조금 더 성능이 좋은 정렬 알고..
-
정렬 알고리즘 5부 병합 정렬24년 11월 이전/레거시-자료구조 2019. 9. 14. 15:46
Contents 시작하며... 병합 정렬의 이해와 구현 병합 정렬의 성능 분석 마치며... 시작하며... 구르미의 "Computer Science 정복하기 - 자료구조"의 열 일곱 번째 장입니다. 이 장의 대략적인 내용은 다음과 같습니다. 병합 정렬의 이해와 구현 병합 정렬의 성능 분석 이 장의 소스코드는 다음을 참고해주세요. url: https://github.com/gurumee92/datastructure branch: ch17 code directory: src/ch17 자 시작합시다! 병합 정렬의 이해와 구현 우리는 지난 세 장(13 ~ 15장)에 걸쳐서 버블 정렬, 선택 정렬, 삽입 정렬을 배웠습니다. 이들의 시간 복잡도는 O(N^2)입니다. 이제부터는 조금 복잡하지만, 조금 더 성능이 좋은 ..
-
정렬 알고리즘 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)입니다. 이제부터는 조금 복잡하지만, 조금 더 성능이 좋은 정렬 알고..
-
정렬 알고리즘 3부 삽입 정렬24년 11월 이전/레거시-자료구조 2019. 9. 13. 19:16
Contents 시작하며... 삽입 정렬의 이해와 구현 삽입 정렬의 성능 분석 마치며... 시작하며... 구르미의 "Computer Science 정복하기 - 자료구조"의 열 다섯 번째 장입니다. 이 장의 대략적인 내용은 다음과 같습니다. 삽입 정렬의 이해와 구현 삽입 정렬의 성능 분석 이 장의 소스코드는 다음을 참고해주세요. url: https://github.com/gurumee92/datastructure branch: ch15 code directory: src/ch15 자 시작합시다! 삽입 정렬의 이해와 구현 이번 장에서는 정렬 알고리즘 중 가장 쉬운 삽입 정렬에 대해서 살펴보도록 하겠습니다. 삽입 정렬 역시 정말 쉽습니다. 역시 다음 배열을 오름차순으로 정렬한다고 가정합니다. 삽입 정렬의 키 ..