반응형

이진탐색 2

[이진탐색] Binary Search, lower-bound, upper-bound

우리가 알고리즘을 할때 가장 단순하고도 쉽게 생각할 수 있는 것이 일일이 대조하면 찾는 순차탐색일 것이다. 순차탐색은 for으로 보통 구현되며 경우의 수 N과 M개의 경우에 시간복잡도 O(N*M)을 가진다. 즉, case가 적은 경우 문제될 것이 없으나 N과 M이 10000, 100000을 넘어갈 경우 부하가 심해진다. 때문에 우리는 이진탐색을 알아야한다. 시간복잡도가 logN으로 줄기 때문이다. 순차탐색은 보통의 경우 이진탐색으로 표현될 수 있다. 이진탐색의 기본 개념은 '분할정복'이다. Divide & Conquer. 이진탐색은 3개의 parameter가 필요하다. 탐색하려는 start point, end point, 그리고 찾으려는 target. 이진탐색은 기본적으로 오름차순으로 정렬이 되어 있어야..

SW/Algorithm 2021.08.24

[이진탐색] 작품상 투표

문제 영화제에서 작품상을 투표한다. 후보작품은 N개이며 투표 참여 인원은 M명이다. 투표 용지에 1~10점의 점수가 써있고 작품이름이 써있다. 그런데 잘못 기입된 작품 이름이 있어 해당 표는 무효표 처리한다고 한다. 작품상 투표가 완료되었을때, 상위 3등을 구하라. 단, 동점일시 후보번호가 빠른 순서가 상위로 한다. 입력 N은 5부터 10000이다. 작품이름은 20자 이하 알파벳이며 M은 5부터 100000이다. 5 ABC Apple Banana Melon Skycastle 6 Banana 3 Melon 3 Apple 1 ABC 1 SKcastle 10 ABC 1 출력 Banana 3 Melon 3 ABC 2 문제해결 후보자별 이름과 투표용지의 이름을 1:1로 대조하여 모든 비교를 한다. 그럼 시간복잡도..

SW/Algorithm 2021.08.23
반응형