Defense Industry Engineer's Room

금광 다이나믹프로그래밍

nxm크기의 금광이 있습니다. 금광은 1x1 크기의 칸으로 나누어져있으며, 각 칸은 특정한 크기의 금이 들어있습니다. 채굴자는 첫 번째 열부터 출발하여 금을 캐기 시작합니다. 맨 처음에는 첫번째 열의 어느 행에서든 출발할 수 있습니다. 이후에 m번에 걸쳐서 매번 오른쪽 위, 오른쪽, 오른쪽 아래 3가지 중 하나의 위치로 이동해야 합니다. 결과적으로 채...

정렬된 배열에서 특정 수의 개수 구하기 이진탐색

리스트나 배열이 정렬되어 있다는 가정하에 가장 빠르게 원소를 찾는 방법은 이진탐색을 이용하는 것입니다. 그리고 이런 이진탐색은 코딩테스트에서 출제자가 의도하지 않았더라도 제일 효과적으로 문제를 해결할 수도 있으니 이진 탐색 라이브러리인 bisect 모듈의 사용 방법은 꼭 기억을 합시다. 예를 들어 수열 [1,1,2,2,2,2,3]이 있을 때 x = ...

정렬된 시퀸스를 탐색할때 이진탐색 bisect 사용방법

일반적으로 정렬되었다는 가정하에 어떤 원소를 가장 빠르게 찾는 방법은 이진탐색을 수행하는 것이고 이 이진 탐색을 위해서 파이썬 내장함수로 준비된게 bisect입니다. 프로그램이 구체적으로 어떤 것을 처리해야하는지 유형에 관계없이 리스트에서 index함수를 사용해 특정값을 찾아내려면 리스트 길이에 선형적으로 비례를 합니다. 운이 좋아서 첫번째에 있다...

heapq 힙 파이썬 우선순위큐 알고리즘 사용방법

Deque를 이용한 스택, 큐 구현하기 지난번 파이썬 내장 함수인 deque를 이용해서 간단하게 스택과 큐처럼 사용하는 방법을 작성했습니다. 이어서 코딩테스트에서 유용하게 사용할 수 있는 우선순위큐에 대해서 살펴보겠습니다. 먼저 이를 위해서 힙이라는 개념도 알고 있으면 좋습니다. 힙 정렬이란 최대 힙 트리나 최소 힙 트리를 구성해 정렬을 하...