본문 바로가기

Algorithm2

[Medium/C++] Minimum Time Required [Medium] Minimum Time Required 백준 기준 실버1~골드5 문제정도 될 것 같다. 한줄 요약 : 이분 탐색 문제. 문제 문제는 다음과 같다. 우선 이 문제는 Search 카테고리의 문제이다. 물건을 만드는 기계들이 있다. 이 기계들은 동시에 작동하며 각 기계는 물건 하나를 생산하는데 몇 일이 걸린다. 예를 들어 machines = [2,3,2] 로 주어진다면, 3개의 기계가 각각 물건 하나를 생산하는데 걸리는 시간이 2일, 3일, 2일 이다. 물건을 10개 만드는 것이 목표라면, 아래와 같은 스케줄을 가지면서 최소 8일 후에 10개를 생산할 수 있다. 물건하나를 생산하는데 몇일이 걸리는지 나열된 배열과 목표 물건의 개수가 주어졌을때, 최소 몇일이 걸리는지 맞추는 문제이다. 솔루션 우.. 2022. 3. 22.
[Algorithm] 유니온 파인드(Union-Find) 알고리즘 유니온 파인드(Union-Find) 알고리즘 분리집합 (서로소 집합, Disjoint Set)의 합집합(Union)과 같은 집합에 속하는지 여부(Find) 를 확인하는 알고리즘. 예시는 정수들의 집합으로하겠다. 1~9 까지 정수 9개가 각각 하나의 집합이라고 하자. {1}, {2}, {3} ,{4}, {5}, {6}, {7}, {8}, {9} 각 정수가 하나의 노드라고 하고, 그래프라고 한다면 초기 상태는 각각 부모노드가 자기 자신인 구조로 설정한다. 이것을 프로그래밍적으로 표현한다면 2차원 배열로 다음과 같이 표현할 수 있다. Node 1 2 3 4 5 6 7 8 9 Parent 1 2 3 4 5 6 7 9 9 여기서 집합 {1} 과 {2} 를 합친다고 하면 다음과 같이 공통의 부모를 두도록 하면 된다.. 2021. 9. 2.