탐색알고리즘(2)
-
Python 80 - 이진탐색 실전문제 1("부품 찾기")
난이도 ●◐○ l 풀이 시간 30분 l 시간 제한 1초 l 메모리 제한 128MB l 문제 태영이네 전자 매장에는 부품이 N개 있다. 각 부품은 정수형태의 고유한 번호가 있다. 어느날 손님이 M개 종류의 부품을 대량으로 구매하겠다며 당일 날 견적서를 요청했다. 동빈이는 때를 놓치지 않고 손님이 문의한 부품 M개 종류를 모두 확인해서 견적서를 작성해야 한다. 이때 가게 안에 부품이 모두 있는지 확인하는 프로그램을 작성해보자. 예를 들어 가게의 부품이 총 5개일 때 부품 번호가 다음과 같다고 하자. 더보기 N = 5 [8, 3, 7, 9, 2] 손님은 총 3개의 부품이 있는지 확인 요청했는데 부품 번호는 다음과 같다. 더보기 M = 3 [5, 7, 9] 이때 손님이 요청한 부품 번호의 순서대로 부품을 확인해..
2021.07.15 -
Python 79 - 이진탐색 (2)
이진 탐색 트리 트리 자료구조 중에서 가장 간단한 형태가 이진 탐색 트리이다. 이진 탐색 트리란 이진 탐색이 동작할 수 있도록 고안된, 효율적인 탐색이 가능한 자료구조이다. 이진 탐색 트리를 설명하는 동안 코드를 배제할 테니 편하게 다음그림을 보자. 보통 이진 탐색 트리는 이 그림과 같은데 모든 트리가 다 이진 탐색 트리는 아니며, 이진 탐색 트리는 다음과 같은 특징을 가진다. 부모 노드 보다 왼쪽 자식이 노드가 작다. 부모 노드보다 오른쪽 자식이 노드가 크다. 그림에서 루트를 포함한 일부만 다시 살펴보자. 좀 더 간단하게 표현하면 왼쪽 자식 노드 < 부모노드 < 오른쪽 자식 노드가 성립해야지 이진 탐색 트리라 할 수 있다. 그림에도 17 < 30 < 48 로 성립한다는 걸 알 수 있다. 이진 탐색 트리..
2021.07.14